Skip to content

Commit 96f3c7e

Browse files
author
Dean Troyer
committed
Fix image member unit tests occasional failures
Let's try just unrolling the member status tests and not getting too fancy here. Change-Id: I30022ebd2da6d6cf1abba424d7d7fa679285f291
1 parent 4b2355b commit 96f3c7e

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)