Fix duplicate state traces

This commit is contained in:
mprahl
2017-11-08 10:07:44 -05:00
parent a8421568f9
commit 3ccbb3dd57
3 changed files with 11 additions and 14 deletions

View File

@@ -603,17 +603,8 @@ class ComponentBuildTrace(MBSBase):
def session_before_commit_handlers(session):
# new and updated items
for item in (set(session.new) | set(session.dirty)):
# handlers for module builds
if isinstance(item, ModuleBuild):
mbt = ModuleBuildTrace(
state_time=datetime.utcnow(),
state=item.state,
state_reason=item.state_reason)
item.module_builds_trace.append(mbt)
# handlers for component builds
elif isinstance(item, ComponentBuild):
if isinstance(item, ComponentBuild):
cbt = ComponentBuildTrace(
state_time=datetime.utcnow(),
state=item.state,

View File

@@ -317,6 +317,13 @@ class TestBuild(unittest.TestCase):
# All components has to be tagged, so tag_groups and buildroot_groups are empty...
self.assertEqual(tag_groups, [])
self.assertEqual(buildroot_groups, [])
module_build = models.ModuleBuild.query.get(module_build_id)
self.assertEqual(module_build.module_builds_trace[0].state, models.BUILD_STATES['init'])
self.assertEqual(module_build.module_builds_trace[1].state, models.BUILD_STATES['wait'])
self.assertEqual(module_build.module_builds_trace[2].state, models.BUILD_STATES['build'])
self.assertEqual(module_build.module_builds_trace[3].state, models.BUILD_STATES['done'])
self.assertEqual(module_build.module_builds_trace[4].state, models.BUILD_STATES['ready'])
self.assertEqual(len(module_build.module_builds_trace), 5)
@timed(30)
@patch('module_build_service.auth.get_user', return_value=user)

View File

@@ -170,10 +170,9 @@ class TestViews(unittest.TestCase):
self.assertEquals(data['state'], 3)
self.assertEquals(data['state_name'], 'done')
self.assertEquals(data['state_reason'], None)
self.assertEquals(data['state_trace'][0]['reason'], None)
self.assertTrue(data['state_trace'][0]['time'] is not None)
self.assertEquals(data['state_trace'][0]['state'], 3)
self.assertEquals(data['state_trace'][0]['state_name'], 'done')
# State trace is empty because we directly created these builds and didn't have them
# transition, which creates these entries
self.assertEquals(data['state_trace'], [])
self.assertEquals(data['state_url'], '/module-build-service/1/module-builds/1')
self.assertEquals(data['stream'], '1')
self.assertDictEqual(data['tasks'], {