[Patchew-devel] [PATCH 8/8] testing: cover project tests

Paolo Bonzini pbonzini at redhat.com
Sat Mar 24 13:37:19 UTC 2018


---
 tests/test_testing.py | 69 +++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 61 insertions(+), 8 deletions(-)

diff --git a/tests/test_testing.py b/tests/test_testing.py
index e525e1d..827d971 100755
--- a/tests/test_testing.py
+++ b/tests/test_testing.py
@@ -30,6 +30,9 @@ class TestingTestCase(PatchewTestCase, metaclass=abc.ABCMeta):
     def setUp(self):
         self.create_superuser()
         self.p = self.add_project("QEMU", "qemu-devel at nongnu.org")
+        self.p.git = "dummy repo"
+        self.p.save()
+
         self.PROJECT_BASE = '%sprojects/%d/' % (self.REST_BASE, self.p.id)
 
         create_test(self.p, "a")
@@ -158,15 +161,35 @@ class MessageTestingTest(TestingTestCase):
         return self.api_client.get('%sseries/%s/results/testing.%s/' % (
                                        self.PROJECT_BASE, self.msg.message_id, test_name))
 
+class ProjectTestingTest(TestingTestCase):
+
+    def setUp(self):
+        super(ProjectTestingTest, self).setUp()
+        self.p.set_property("git.head", "5678")
+        self.p.set_property("testing.tested-head", "1234")
+        self.p.set_property("testing.ready", 1)
+
+    def do_testing_done(self, log=None, **report):
+        self._do_testing_done(self.p, log, report)
+
+    def do_testing_report(self, **report):
+        r = super(ProjectTestingTest, self).do_testing_report(**report)
+        self.assertEquals(r['type'], 'project')
+        return r
+
+    def get_test_result(self, test_name):
+        return self.api_client.get('%sresults/testing.%s/' % (
+                                       self.PROJECT_BASE, test_name))
+
 class TesterTest(PatchewTestCase):
 
     def setUp(self):
         self.create_superuser()
 
-        p1 = self.add_project("QEMU", "qemu-devel at nongnu.org")
-        create_test(p1, "a")
-        p2 = self.add_project("UMEQ", "qemu-devel at nongnu.org")
-        create_test(p2, "b")
+        self.p1 = self.add_project("QEMU", "qemu-devel at nongnu.org")
+        create_test(self.p1, "a")
+        self.p2 = self.add_project("UMEQ", "qemu-devel at nongnu.org")
+        create_test(self.p2, "b")
 
         self.cli_login()
         self.cli_import('0001-simple-patch.mbox.gz')
@@ -176,10 +199,9 @@ class TesterTest(PatchewTestCase):
         os.mkdir(self.repo)
         subprocess.check_output(["git", "init"], cwd=self.repo)
         for f in ["foo", "bar"]:
-            subprocess.check_output(["touch", f], cwd=self.repo)
-            subprocess.check_output(["git", "add", f], cwd=self.repo)
-            subprocess.check_output(["git", "commit", "-m", "add " + f],
-                                    cwd=self.repo)
+            self.add_file_and_commit(f)
+        self.update_head(self.p1)
+        self.update_head(self.p2)
         base = subprocess.check_output(["git", "rev-parse", "HEAD~1"],
                                        cwd=self.repo).decode()
         subprocess.check_output(["git", "tag", "test"], cwd=self.repo)
@@ -189,6 +211,17 @@ class TesterTest(PatchewTestCase):
             msg.set_property("git.tag", "test")
             msg.set_property("git.base", base)
 
+    def add_file_and_commit(self, f):
+        subprocess.check_output(["touch", f], cwd=self.repo)
+        subprocess.check_output(["git", "add", f], cwd=self.repo)
+        subprocess.check_output(["git", "commit", "-m", "add " + f],
+                                cwd=self.repo)
+
+    def update_head(self, p):
+        head = subprocess.check_output(["git", "rev-parse", "HEAD"],
+                                       cwd=self.repo).decode()
+        p.set_property("git.head", head)
+
     def test_tester(self):
         self.cli_login()
         out, err = self.check_cli(["tester", "-p", "QEMU,UMEQ",
@@ -210,6 +243,26 @@ class TesterTest(PatchewTestCase):
         self.assertIn("Nothing to test", out)
         self.cli_logout()
 
+    def test_tester_project(self):
+        self.cli_login()
+        out, err = self.check_cli(["tester", "-p", "QEMU,UMEQ",
+                                   "--no-wait"])
+        self.assertIn("Project: QEMU\n", out)
+        self.assertIn("Project: UMEQ\n", out)
+
+        self.p1.git = self.repo
+        self.p1.save()
+        self.add_file_and_commit("baz")
+        self.update_head(self.p1)
+        out, err = self.check_cli(["tester", "-p", "QEMU,UMEQ",
+                                   "--no-wait", "-N", "1"])
+        self.assertIn("Project: QEMU\n", out)
+        self.assertIn("'type': 'project'", out)
+        out, err = self.check_cli(["tester", "-p", "QEMU,UMEQ",
+                                   "--no-wait", "-N", "1"])
+        self.assertIn("Nothing to test", out)
+        self.cli_logout()
+
 # do not run tests on the abstract class
 del TestingTestCase
 
-- 
2.16.2




More information about the Patchew-devel mailing list