Repository: sunpy/sunpy

Issue:
GOES-XRS units for the quality flag are not units
### Describe the bug

the quality flag which is now included in the GOES-XRS timeseries doesn't have associated units - given as `int` here 
https://github.com/sunpy/sunpy/blob/main/sunpy/timeseries/sources/goes.py#L272

these should be `u.dimensionless_unscaled`.


I noticed this by slicing out the dataframe, and units from a GOES-XRS timeseries and then tried ti re-create a timeseries and it didn't like that as they were not units

e.g.

```python
>>> goes_xrs =  ts.TimeSeries("sci_gxrs-l2-irrad_g15_d20170910_v0-0-0.nc")

>>> goes_df = goes_xrs._data
>>> goes_units = goes_xrs.units
>>> new_xrs = ts.TimeSeries(goes_df, goes_units)
WARNING: SunpyUserWarning: Unknown units for xrsa [sunpy.timeseries.timeseriesbase]
WARNING: SunpyUserWarning: Unknown units for xrsb [sunpy.timeseries.timeseriesbase]
WARNING: SunpyUserWarning: Unknown units for xrsa_quality [sunpy.timeseries.timeseriesbase]
WARNING: SunpyUserWarning: Unknown units for xrsb_quality [sunpy.timeseries.timeseriesbase]


```
but this is because:
```python
>>> goes_xrs.units:
OrderedDict([('xrsa', Unit("W / m2")),
             ('xrsb', Unit("W / m2")),
             ('xrsa_quality', int),
             ('xrsb_quality', int)])
```

but if the units were `u.dimensionless_unscaled` this works:

```python
>>> goes_units2 = OrderedDict([('xrsa', u.Unit("W / m2")),
                                                ('xrsb', u.Unit("W / m2")),
                                                ('xrsa_quality', u.dimensionless_unscaled),
                                                ('xrsb_quality', u.dimensionless_unscaled)])


>>> new_xrs = ts.TimeSeries(goes_df, goes_units2)
```



Discussion:

Patch:
diff --git a/changelog/6423.bugfix.rst b/changelog/6423.bugfix.rst
new file mode 100644
index 000000000..af0f17535
--- /dev/null
+++ b/changelog/6423.bugfix.rst
@@ -0,0 +1,1 @@
+Adds units (dimensionless units) to the quality columns in `.XRSTimeSeries`.
diff --git a/sunpy/timeseries/sources/goes.py b/sunpy/timeseries/sources/goes.py
index 6be5bda21..d78e96eec 100644
--- a/sunpy/timeseries/sources/goes.py
+++ b/sunpy/timeseries/sources/goes.py
@@ -269,8 +269,8 @@ class XRSTimeSeries(GenericTimeSeries):
             [
                 ("xrsa", u.W/u.m**2),
                 ("xrsb", u.W/u.m**2),
-                ("xrsa_quality", int),
-                ("xrsb_quality", int),
+                ("xrsa_quality", u.dimensionless_unscaled),
+                ("xrsb_quality", u.dimensionless_unscaled),
             ]
         )
         return data, header, units


Test patch:
diff --git a/sunpy/timeseries/sources/tests/test_goes.py b/sunpy/timeseries/sources/tests/test_goes.py
index d763d596b..cceab6a71 100644
--- a/sunpy/timeseries/sources/tests/test_goes.py
+++ b/sunpy/timeseries/sources/tests/test_goes.py
@@ -1,5 +1,8 @@
+import numpy as np
 import pytest
 
+from astropy import units as u
+
 import sunpy.timeseries
 from sunpy.data.test import get_test_filepath
 from sunpy.tests.helpers import figure_test
@@ -70,6 +73,8 @@ def test_new_goes16():
     # Test a GOES TimeSeries
     ts_goes = sunpy.timeseries.TimeSeries(new_goes17_filepath, source='XRS')
     assert isinstance(ts_goes, sunpy.timeseries.sources.goes.XRSTimeSeries)
+    # test that all columns have associated units
+    assert np.all([isinstance(unit_val, u.UnitBase) for unit_val in ts_goes.units.values()])
 
 
 def test_goes_netcdf_time_parsing15():