From bb6bab3767059bf0c74266d724c94355b4be267e Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Aug 16 2018 04:31:39 +0000 Subject: Keep the original state_reason when removing the compose. --- diff --git a/server/odcs/server/backend.py b/server/odcs/server/backend.py index 4c1c8c0..19410ac 100644 --- a/server/odcs/server/backend.py +++ b/server/odcs/server/backend.py @@ -172,9 +172,13 @@ class RemoveExpiredComposesThread(BackendThread): log.info("%r: Removing compose", compose) compose.state = COMPOSE_STATES["removed"] if compose.removed_by: - compose.state_reason = "Removed by {}".format(compose.removed_by) + state_reason = "Removed by {}.".format(compose.removed_by) else: - compose.state_reason = "Compose is expired" + state_reason = "Compose is expired." + if compose.state_reason: + compose.state_reason += "\n%s" % state_reason + else: + compose.state_reason = state_reason compose.time_removed = datetime.utcnow() db.session.commit() if not compose.reused_id: diff --git a/server/tests/test_remove_expired_composes_thread.py b/server/tests/test_remove_expired_composes_thread.py index ded5ee3..ee908c4 100644 --- a/server/tests/test_remove_expired_composes_thread.py +++ b/server/tests/test_remove_expired_composes_thread.py @@ -80,7 +80,23 @@ class TestRemoveExpiredComposesThread(ModelsBaseTest): db.session.expunge_all() c = db.session.query(Compose).filter(Compose.id == 1).one() self.assertEqual(c.state, COMPOSE_STATES["removed"]) - self.assertEqual(c.state_reason, 'Compose is expired') + self.assertEqual(c.state_reason, 'Compose is expired.') + + def test_a_compose_which_state_is_done_is_removed_keep_state_reason(self): + """ + Test that we do remove a compose in done state. + """ + c = db.session.query(Compose).filter(Compose.id == 1).one() + c.time_to_expire = datetime.utcnow() - timedelta(seconds=120) + c.state = COMPOSE_STATES["done"] + c.state_reason = "Generated successfully." + db.session.add(c) + db.session.commit() + self.thread.do_work() + db.session.expunge_all() + c = db.session.query(Compose).filter(Compose.id == 1).one() + self.assertEqual(c.state, COMPOSE_STATES["removed"]) + self.assertEqual(c.state_reason, 'Generated successfully.\nCompose is expired.') def test_does_not_remove_a_compose_which_is_not_expired(self): """