aboutsummaryrefslogtreecommitdiff
path: root/tests/test_trans_chain.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_trans_chain.py')
-rw-r--r--tests/test_trans_chain.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/test_trans_chain.py b/tests/test_trans_chain.py
new file mode 100644
index 0000000..209d7d7
--- /dev/null
+++ b/tests/test_trans_chain.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""Tests the debconf forwarding"""
+import unittest
+from gi.repository import GLib
+
+from aptdaemon import enums, client
+
+DEBUG = False
+
+
+class TransChainTest(unittest.TestCase):
+
+ """These tests require an aptdaemon running with the dummy worker:
+ # sudo aptd -td --dummy
+ """
+
+ def setUp(self):
+ self.loop = GLib.MainLoop()
+ self.client = client.AptClient()
+
+ def _test_working(self):
+ def on_finished(trans, exit):
+ self.loop.quit()
+ trans1 = self.client.upgrade_packages(["huhu"])
+ trans2 = self.client.upgrade_packages(["lala"])
+ trans3 = self.client.upgrade_packages(["huhu"])
+ trans2.run_after(trans1)
+ trans3.run_after(trans2)
+ trans1.run()
+ trans3.connect("finished", on_finished)
+ self.loop.run()
+ self.assertTrue(trans1.exit == enums.EXIT_SUCCESS)
+ self.assertTrue(trans2.exit == enums.EXIT_SUCCESS)
+ self.assertTrue(trans3.exit == enums.EXIT_SUCCESS)
+
+ def _test_fail_after(self):
+ def on_finished(trans, exit):
+ self.loop.quit()
+ trans1 = self.client.update_cache()
+ trans2 = self.client.upgrade_packages(["huhululu"])
+ trans3 = self.client.upgrade_packages(["huhululu"])
+ trans2.run_after(trans1)
+ trans3.run_after(trans2)
+ trans1.run()
+ trans3.connect("finished", on_finished)
+ self.loop.run()
+ self.assertTrue(trans1.exit == enums.EXIT_FAILED)
+ self.assertTrue(trans2.exit == enums.EXIT_PREVIOUS_FAILED)
+ self.assertTrue(trans3.exit == enums.EXIT_PREVIOUS_FAILED)
+
+
+if __name__ == "__main__":
+ import logging
+ if DEBUG:
+ logging.basicConfig(level=logging.DEBUG)
+ unittest.main()
+
+# vim: ts=4 et sts=4