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:

Resolving patch:
diff --git a/sunpy/timeseries/sources/goes.py b/sunpy/timeseries/sources/goes.py
--- a/sunpy/timeseries/sources/goes.py
+++ b/sunpy/timeseries/sources/goes.py
@@ -269,8 +269,8 @@ def _parse_netcdf(filepath):
             [
                 ("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
--- 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():