Skip to content

Commit

Permalink
Add another test
Browse files Browse the repository at this point in the history
  • Loading branch information
eheinrich committed Jun 10, 2019
1 parent 5444498 commit 8138c3c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
14 changes: 8 additions & 6 deletions observation_portal/common/configdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,10 +267,12 @@ def get_instrument_names(
"""
instrument_names = set()
for instrument in self.get_instruments():
if (instrument['telescope_key'].site.lower() == site_code.lower()
if (
instrument['telescope_key'].site.lower() == site_code.lower()
and instrument['telescope_key'].enclosure.lower() == enclosure_code.lower()
and instrument['telescope_key'].telescope.lower() == telescope_code.lower()
and instrument['science_camera']['camera_type']['code'].lower() == instrument_type.lower()):
and instrument['science_camera']['camera_type']['code'].lower() == instrument_type.lower()
):
instrument_names.add(instrument['science_camera']['code'].lower())
return instrument_names

Expand Down Expand Up @@ -386,10 +388,10 @@ def get_default_modes_by_type(self, instrument_type: str, mode_type: str = '') -
"""
modes = self.get_modes_by_type(instrument_type, mode_type)
default_modes = {}
for type, mode_set in modes.items():
for mode in mode_set['modes']:
if 'default' in mode_set and mode['code'] == mode_set['default']:
default_modes[type] = mode
for m_type, m_set in modes.items():
for mode in m_set['modes']:
if 'default' in m_set and mode['code'] == m_set['default']:
default_modes[m_type] = mode
break
return default_modes

Expand Down
6 changes: 6 additions & 0 deletions observation_portal/requestgroups/test/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1271,6 +1271,12 @@ def test_readout_mode_many_options(self):
response = self.client.post(reverse('api:request_groups-list'), data=bad_data)
self.assertIn('Must set a readout mode, choose from', str(response.content))

def test_instrument_type_does_not_have_readout_mode_then_mode_stays_blank(self):
good_data = self.generic_payload.copy()
response = self.client.post(reverse('api:request_groups-list'), data=good_data)
self.assertEqual(response.status_code, 201)
self.assertEqual(response.json()['requests'][0]['configurations'][0]['instrument_configs'][0]['rotator_mode'], '')

def test_readout_mode_not_set_and_no_default_but_single_option_set(self):
good_data = self.generic_payload.copy()
good_data['requests'][0]['configurations'][0]['type'] = 'SPECTRUM'
Expand Down

0 comments on commit 8138c3c

Please sign in to comment.