#78 Rewrite dingus tests to mock
Merged 5 years ago by frantisekz. Opened 5 years ago by frantisekz.

file modified
-6
@@ -33,7 +33,6 @@ 

  BuildRequires:  python-devel

  BuildRequires:  python-setuptools

  BuildRequires:  python-munch

- BuildRequires:  python-dingus

  BuildRequires:  python-flask

  BuildRequires:  python-flask-sqlalchemy

  BuildRequires:  python-flask-admin
@@ -45,11 +44,6 @@ 

  BuildRequires:  python-bugzilla

  BuildRequires:  python-iso8601

  

- # There are no python-dingus builds for el6 or epel7

- %if 0%{?fedora}

- BuildRequires:  python-dingus

- %endif

- 

  %description

  The blocker tracking app is a web front end to the currently proposed blocker

  and freeze exception bugs for Fedora releases under development.

file modified
-2
@@ -16,11 +16,9 @@ 

  python-fedora>=0.5.5

  pycurl>=7.19.0

  Flask-FAS>=0.1.0

- dingus>=0.3.4

  alembic>=0.5.0

  Flask-Admin>=1.0.8

  iso8601>=0.1.4

- cssmin>=0.1.4

  python-openid>=2.2.5

  python-openid-cla>=1.0

  python-openid-teams>=1.0

file modified
+64 -40
@@ -1,4 +1,4 @@ 

- from dingus import Dingus, exception_raiser

+ import mock

  from datetime import datetime

  

  # First, try to import modern xmlrpc.client and support also old one on EPEL 7/Python 2
@@ -28,8 +28,9 @@ 

          self.ref_cc = 'cc@allthebugs.com'

  

      def test_propose_blocker(self):

-         stubbz = Dingus(update_bugs__returns=True,

-                         build_update__returns=bz_success)

+         stubbz = mock.Mock()

+         stubbz.update_bugs.return_value = True

+         stubbz.build_update.return_value = bz_success

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True)
@@ -40,34 +41,36 @@ 

          assert stubbz.update_bugs.calls().once()

  

      def test_propose_blocker_comment(self):

-         stubbz = Dingus(_update_bug__returns=True,

-                         build_update__returns=bz_success)

+         stubbz = mock.Mock()

+         stubbz._update_bug.return_value = True

+         stubbz.build_update.return_value = bz_success

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True)

          test_bz.propose_bugs(self.ref_user, self.ref_milestone,

                               self.ref_justification)

- 

-         test_comment = stubbz.build_update.calls()[0][2]['comment']

- 

+         test_comment = stubbz.build_update.mock_calls[0][2]['comment']

          assert test_comment.startswith('Proposed as a Blocker for F19-alpha by joe@allthebugs.com')

  

      def test_propose_blocker_cc(self):

-         stubbz = Dingus(_update_bug__returns=True,

-                         build_update__returns=bz_success)

+         stubbz = mock.Mock()

+         stubbz._update_bug.return_value = True

+         stubbz.build_update.return_value = bz_success

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True, bz_user=self.ref_cc)

          test_bz.propose_bugs(self.ref_user, self.ref_milestone,

                               self.ref_justification)

  

-         test_cc = stubbz.build_update.calls()[0][2]['cc_add']

+         test_cc = stubbz.build_update.mock_calls[0][2]['cc_add']

  

          assert self.ref_cc in test_cc

  

      def test_propose_multiple_tracker(self):

-         stubbz = Dingus(_update_bug__returns=True,

-                         build_update__returns=bz_success)

+         stubbz = mock.Mock()

+         stubbz._update_bug.return_value = True

+         stubbz.build_update.return_value = bz_success

+ 

          ref_trackerids = self.ref_trackers.values()

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,
@@ -75,13 +78,15 @@ 

          test_bz.propose_bugs(self.ref_user, self.ref_milestone,

                               self.ref_justification)

  

-         test_trackers = stubbz.build_update.calls()[0][2]['blocks_add']

+         test_trackers = stubbz.build_update.mock_calls[0][2]['blocks_add']

  

          assert test_trackers == ref_trackerids

  

      def test_propose_single_tracker(self):

-         stubbz = Dingus(_update_bug__returns=True,

-                         build_update__returns=bz_success)

+         stubbz = mock.Mock()

+         stubbz._update_bug.return_value = True

+         stubbz.build_update.return_value = bz_success

+ 

          ref_trackerid = [self.ref_trackers['blocker']]

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,
@@ -89,13 +94,16 @@ 

          test_bz.propose_bugs(self.ref_user, self.ref_milestone,

                               self.ref_justification)

  

-         test_trackers = stubbz.build_update.calls()[0][2]['blocks_add']

+         test_trackers = stubbz.build_update.mock_calls[0][2]['blocks_add']

  

          assert test_trackers == ref_trackerid

  

      def test_proposed_cc_invalid(self):

-         stubbz = Dingus(_update_bug__returns=True, build_update__returns=bz_success)

-         stubbz.update_bugs = exception_raiser(Fault(50, 'not 51 exception'))

+         stubbz = mock.Mock()

+         stubbz._update_bug.return_value = True

+         stubbz.build_update.return_value = bz_success

+ 

+         stubbz.update_bugs = mock.Mock(side_effect=Fault(50, 'not 51 exception'))

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                      is_blocker = True, bz_user = self.ref_cc)
@@ -117,8 +125,10 @@ 

          self.ref_proposed = 345678

  

      def test_check_proposal_calls(self):

-         refbug = Dingus(blocked__returns=[])

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked.return_value = []

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True)
@@ -127,8 +137,10 @@ 

          assert stubbz.getbug.calls().once()

  

      def test_check_blocker_proposal_clean(self):

-         refbug = Dingus(blocked__returns=[])

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked.return_value = []

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True)
@@ -137,8 +149,10 @@ 

          assert test_result

  

      def test_check_propose_blocker_already(self):

-         refbug = Dingus(blocked=[self.ref_trackers['blocker']])

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked = [self.ref_trackers['blocker']]

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True)
@@ -149,8 +163,10 @@ 

      def test_check_bothpropose_blocker_already(self):

          self.ref_tracker_type = 'Blocker and Freeze Exception'

  

-         refbug = Dingus(blocked=[self.ref_trackers['blocker']])

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked = [self.ref_trackers['blocker']]

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True, is_fe=True)
@@ -161,8 +177,10 @@ 

      def test_check_bothpropose_blocker_already_fe_ok(self):

          self.ref_tracker_type = 'Blocker and Freeze Exception'

  

-         refbug = Dingus(blocked=[self.ref_trackers['blocker']])

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked = [self.ref_trackers['blocker']]

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True, is_fe=True)
@@ -171,8 +189,10 @@ 

          assert test_result == True

  

      def test_check_bothpropose_fe_already(self):

-         refbug = Dingus(blocked=[self.ref_trackers['fe']])

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked = [self.ref_trackers['fe']]

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True, is_fe=True)
@@ -181,8 +201,10 @@ 

          assert test_result == False

  

      def test_check_bothpropose_fe_already_blocker_ok(self):

-         refbug = Dingus(blocked=[self.ref_trackers['fe']])

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked = [self.ref_trackers['fe']]

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True, is_fe=True)
@@ -191,8 +213,8 @@ 

          assert test_result == True

  

      def test_proposed_bug_notexist(self):

-         stubbz = Dingus()

-         stubbz.getbug = exception_raiser(Fault(101, 'bug does not exist'))

+         stubbz = mock.MagicMock()

+         stubbz.getbug = mock.Mock(side_effect=Fault(101, 'bug does not exist'))

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed, self.ref_trackers,

                                    is_blocker=True)
@@ -212,8 +234,11 @@ 

  

      def test_proposed_bug_closed(self):

          ref_status = 'CLOSED NOTABUG'

-         refbug = Dingus(blocked=[self.blocker_tracker], bug_status=ref_status)

-         stubbz = Dingus(getbug__returns=refbug)

+         refbug = mock.MagicMock()

+         refbug.blocked = [self.blocker_tracker]

+         refbug.bug_status = ref_status

+         stubbz = mock.MagicMock()

+         stubbz.getbug.return_value = refbug

  

          test_bz = BlockerProposal(stubbz, self.ref_proposed,

                                    [self.blocker_tracker],
@@ -225,9 +250,8 @@ 

          self.ref_proposed, ref_status)

  

      def test_proposed_bug_invalid(self):

-         stubbz = Dingus()

-         stubbz.getbug = exception_raiser(Fault(101, 'bug does not exist'))

- 

+         stubbz = mock.MagicMock()

+         stubbz.getbug = mock.Mock(side_effect=Fault(101, 'bug does not exist'))

          test_bz = BlockerProposal(stubbz, self.ref_proposed,

                                    [self.blocker_tracker],

                                    self.ref_tracker_type)

Dingus is no longer maintained and does not support Python 3

I haven't tried to run it, but looking at the changes it looks OK.

Pull-Request has been merged by frantisekz

5 years ago