#387 Show event dependencies in the REST API
Merged 4 years ago by jkaluza. Opened 4 years ago by gnaponie.
gnaponie/freshmaker show-event-deps  into  master

file modified
+11
@@ -284,6 +284,15 @@ 

                  id=dep.event_dependency_id).first())

          return events

  

+     @property

+     def depends_on_events(self):

+         depends_on_events = []

+         parents = EventDependency.query.filter_by(event_dependency_id=self.id).all()

+         for p in parents:

+             depends_on_events.append(Event.query.filter_by(

+                 id=p.event_id).first())

+         return depends_on_events

+ 

      def has_all_builds_in_state(self, state):

          """

          Returns True when all builds are in the given `state`.
@@ -360,6 +369,8 @@ 

      def json(self):

          data = self._common_json()

          data['builds'] = [b.json() for b in self.builds]

+         data['depends_on_events'] = [event.id for event in self.depends_on_events]

+         data['depending_events'] = [event.id for event in self.event_dependencies]

          return data

  

      def json_min(self):

file modified
+4
@@ -372,6 +372,7 @@ 

          event = Event.create(db.session, "test_msg_id", "test", events.TestingEvent)

          db.session.commit()

          self.assertEqual(event.event_dependencies, [])

+         self.assertEqual(event.depends_on_events, [])

  

      def test_add_a_dependent_event(self):

          event = Event.create(db.session, "test_msg_id", "test", events.TestingEvent)
@@ -384,6 +385,8 @@ 

          self.assertEqual(event.event_dependencies, [event1])

          self.assertEqual(event.event_dependencies[0].search_key, "test2")

          self.assertEqual(event1.event_dependencies, [])

+         self.assertEqual(event1.depends_on_events, [event])

+         self.assertEqual(event.depends_on_events, [])

  

      def test_add_existing_dependent_event(self):

          event = Event.create(db.session, "test_msg_id", "test", events.TestingEvent)
@@ -396,6 +399,7 @@ 

  

          self.assertIsNone(rel)

          self.assertEqual(event.event_dependencies, [event1])

+         self.assertEqual(event1.depends_on_events, [event])

  

      def test_return_added_dependency_relationship(self):

          event = Event.create(db.session, "test_msg_id", "test", events.TestingEvent)

file modified
+20
@@ -475,6 +475,24 @@ 

              'images': {'foo-1-1': ['content-set']},

              'msg': 'Found 1 images which are handled by Freshmaker for defined content_sets.'})

  

+     def test_dependencies(self):

+         event = models.Event.create(db.session, "2017-00000000-0000-0000-0000-000000000003", "RHSA-2018-103", events.TestingEvent)

+         event1 = models.Event.create(db.session, "2017-00000000-0000-0000-0000-000000000004", "RHSA-2018-104", events.TestingEvent)

+         db.session.commit()

+         event.add_event_dependency(db.session, event1)

+         db.session.commit()

+         resp = self.client.get('/api/1/events/4')

+         data = json.loads(resp.get_data(as_text=True))

+         self.assertEqual(data['id'], event1.id)

+         self.assertEqual(data['depends_on_events'], [event.id])

+         self.assertEqual(data['depending_events'], [])

+ 

+         resp = self.client.get('/api/1/events/3')

+         data = json.loads(resp.get_data(as_text=True))

+         self.assertEqual(data['id'], event.id)

+         self.assertEqual(data['depends_on_events'], [])

+         self.assertEqual(data['depending_events'], [event1.id])

+ 

  

  class TestViewsMultipleFilterValues(helpers.ModelsTestCase):

      def setUp(self):
@@ -540,6 +558,8 @@ 

          # Other fields are predictible.

          self.assertEqual(data, {

              u'builds': [],

+             u'depending_events': [],

+             u'depends_on_events': [],

              u'event_type_id': 13,

              u'id': 1,

              u'message_id': u'manual_rebuild_123',

The event dependencies are now visible in the REST API when asking
for a event. New information are: depends_on_events and
depending_events.

Signed-off-by: gnaponie gnaponie@redhat.com

Commit d34f735 fixes this pull-request

Pull-Request has been merged by jkaluza

4 years ago

Pull-Request has been merged by jkaluza

4 years ago