Skip to content

Commit a9af66e

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Fix image member unit tests occasional failures"
2 parents e637e9c + 96f3c7e commit a9af66e

1 file changed

Lines changed: 87 additions & 20 deletions

File tree

openstackclient/tests/unit/image/v2/test_image.py

Lines changed: 87 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,11 @@ def setUp(self):
829829

830830
self.images_mock.get.return_value = self.model(**image_fakes.IMAGE)
831831
self.images_mock.update.return_value = self.model(**image_fakes.IMAGE)
832+
833+
self.app.client_manager.auth_ref = mock.Mock(
834+
project_id=self.project.id,
835+
)
836+
832837
# Get the command object to test
833838
self.cmd = image.SetImage(self.app, None)
834839

@@ -847,32 +852,94 @@ def test_image_set_no_options(self):
847852

848853
self.image_members_mock.update.assert_not_called()
849854

850-
def test_image_set_membership_option(self):
855+
def test_image_set_membership_option_accept(self):
856+
membership = image_fakes.FakeImage.create_one_image_member(
857+
attrs={'image_id': image_fakes.image_id,
858+
'member_id': self.project.id}
859+
)
860+
self.image_members_mock.update.return_value = membership
861+
862+
arglist = [
863+
'--accept',
864+
image_fakes.image_id,
865+
]
866+
verifylist = [
867+
('accept', True),
868+
('reject', False),
869+
('pending', False),
870+
('image', image_fakes.image_id)
871+
]
872+
873+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
874+
self.cmd.take_action(parsed_args)
875+
876+
self.image_members_mock.update.assert_called_once_with(
877+
image_fakes.image_id,
878+
self.app.client_manager.auth_ref.project_id,
879+
'accepted',
880+
)
881+
882+
# Assert that the 'update image" route is also called, in addition to
883+
# the 'update membership' route.
884+
self.images_mock.update.assert_called_with(image_fakes.image_id)
885+
886+
def test_image_set_membership_option_reject(self):
887+
membership = image_fakes.FakeImage.create_one_image_member(
888+
attrs={'image_id': image_fakes.image_id,
889+
'member_id': self.project.id}
890+
)
891+
self.image_members_mock.update.return_value = membership
892+
893+
arglist = [
894+
'--reject',
895+
image_fakes.image_id,
896+
]
897+
verifylist = [
898+
('accept', False),
899+
('reject', True),
900+
('pending', False),
901+
('image', image_fakes.image_id)
902+
]
903+
904+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
905+
self.cmd.take_action(parsed_args)
906+
907+
self.image_members_mock.update.assert_called_once_with(
908+
image_fakes.image_id,
909+
self.app.client_manager.auth_ref.project_id,
910+
'rejected',
911+
)
912+
913+
# Assert that the 'update image" route is also called, in addition to
914+
# the 'update membership' route.
915+
self.images_mock.update.assert_called_with(image_fakes.image_id)
916+
917+
def test_image_set_membership_option_pending(self):
851918
membership = image_fakes.FakeImage.create_one_image_member(
852919
attrs={'image_id': image_fakes.image_id,
853920
'member_id': self.project.id}
854921
)
855922
self.image_members_mock.update.return_value = membership
856923

857-
for status in ('accept', 'reject', 'pending'):
858-
arglist = [
859-
'--%s' % status,
860-
image_fakes.image_id,
861-
]
862-
verifylist = [
863-
(status, True),
864-
('image', image_fakes.image_id)
865-
]
866-
867-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
868-
self.cmd.take_action(parsed_args)
869-
870-
self.image_members_mock.update.assert_called_once_with(
871-
image_fakes.image_id,
872-
self.app.client_manager.auth_ref.project_id,
873-
status if status == 'pending' else status + 'ed'
874-
)
875-
self.image_members_mock.update.reset_mock()
924+
arglist = [
925+
'--pending',
926+
image_fakes.image_id,
927+
]
928+
verifylist = [
929+
('accept', False),
930+
('reject', False),
931+
('pending', True),
932+
('image', image_fakes.image_id)
933+
]
934+
935+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
936+
self.cmd.take_action(parsed_args)
937+
938+
self.image_members_mock.update.assert_called_once_with(
939+
image_fakes.image_id,
940+
self.app.client_manager.auth_ref.project_id,
941+
'pending',
942+
)
876943

877944
# Assert that the 'update image" route is also called, in addition to
878945
# the 'update membership' route.

0 commit comments

Comments
 (0)