Merge #780 Fix duplicate state traces

This commit is contained in:
Matt Prahl
2017-11-10 13:32:42 +00:00
4 changed files with 18 additions and 15 deletions

8
Jenkinsfile vendored
View File

@@ -35,8 +35,14 @@ node('factory2'){
onmyduffynode "git clone -b \"${env.BRANCH_NAME}\" https://pagure.io/fm-orchestrator"
}
stage('Prepare Node') {
onmyduffynode 'cd fm-orchestrator && pip install -r requirements.txt && pip install -r test-requirements.txt && python setup.py develop'
}
stage('Run Test Suite') {
onmyduffynode 'cd fm-orchestrator && pip install -r requirements.txt && pip install -r test-requirements.txt && python setup.py develop && flake8 --ignore E731 --exclude .tox,.git,module_build_service/migrations && pytest -v tests/'
timeout(600) {
onmyduffynode 'cd fm-orchestrator && flake8 --ignore E731 --exclude .tox,.git,module_build_service/migrations && pytest -v tests/'
}
}
}catch (e){

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'], {