| |
@@ -367,6 +367,47 @@
|
| |
self.assertEqual(len(evs), 1)
|
| |
self.assertEqual(evs[0]['search_key'], 'RHSA-2018-101')
|
| |
|
| |
+ def test_query_event_by_state_name(self):
|
| |
+ models.Event.create(db.session,
|
| |
+ "2018-00000000-0000-0000-0123-000000000001",
|
| |
+ "0123001",
|
| |
+ events.MBSModuleStateChangeEvent,
|
| |
+ state=EventState['COMPLETE'].value)
|
| |
+ resp = self.client.get('/api/1/events/?state=complete')
|
| |
+ evs = json.loads(resp.get_data(as_text=True))['items']
|
| |
+ self.assertEqual(len(evs), 1)
|
| |
+ self.assertEqual(evs[0]['state'], EventState['COMPLETE'].value)
|
| |
+
|
| |
+ def test_query_event_with_invalid_state_name(self):
|
| |
+ resp = self.client.get('/api/1/events/?state=invalid')
|
| |
+ data = json.loads(resp.get_data(as_text=True))
|
| |
+ self.assertEqual(data['status'], 400)
|
| |
+ self.assertEqual(data['message'], "Invalid state was supplied: invalid")
|
| |
+
|
| |
+ def test_query_event_by_multiple_state_names(self):
|
| |
+ models.Event.create(db.session,
|
| |
+ "2018-00000000-0000-0000-0123-000000000001",
|
| |
+ "0123001",
|
| |
+ events.MBSModuleStateChangeEvent,
|
| |
+ state=EventState['BUILDING'].value)
|
| |
+ models.Event.create(db.session,
|
| |
+ "2018-00000000-0000-0000-0123-000000000002",
|
| |
+ "0123002",
|
| |
+ events.MBSModuleStateChangeEvent,
|
| |
+ state=EventState['COMPLETE'].value)
|
| |
+ models.Event.create(db.session,
|
| |
+ "2018-00000000-0000-0000-0123-000000000003",
|
| |
+ "0123003",
|
| |
+ events.MBSModuleStateChangeEvent,
|
| |
+ state=EventState['COMPLETE'].value)
|
| |
+ resp = self.client.get('/api/1/events/?state=building&state=complete')
|
| |
+ evs = json.loads(resp.get_data(as_text=True))['items']
|
| |
+ self.assertEqual(len(evs), 3)
|
| |
+ building_events = [e for e in evs if e['state'] == EventState['BUILDING'].value]
|
| |
+ complete_events = [e for e in evs if e['state'] == EventState['COMPLETE'].value]
|
| |
+ self.assertEqual(len(building_events), 1)
|
| |
+ self.assertEqual(len(complete_events), 2)
|
| |
+
|
| |
def test_query_event_order_by_default(self):
|
| |
resp = self.client.get('/api/1/events/')
|
| |
evs = json.loads(resp.get_data(as_text=True))['items']
|
| |
With this change, we can query events with state names, like:
/api/1/events/?state=ready
/api/1/events/?state=done&state=ready