def step_impl_when(context): context.deployments_file = os.path.join('fake_soa_configs', 'fake_deployments_json_service', 'deployments.json') try: os.remove(context.deployments_file) except OSError: pass fake_args = mock.MagicMock( service='fake_deployments_json_service', soa_dir='fake_soa_configs', verbose=True, ) with contextlib.nested( mock.patch( 'paasta_tools.generate_deployments_for_service.get_git_url', autospec=True, return_value=context.test_git_repo_dir), mock.patch( 'paasta_tools.generate_deployments_for_service.parse_args', autospec=True, return_value=fake_args), ) as ( mock_get_git_url, mock_parse_args, ): generate_deployments_for_service.main()
def test_main(): fake_soa_dir = '/etc/true/null' file_mock = mock.MagicMock(spec=file) with contextlib.nested( mock.patch('paasta_tools.generate_deployments_for_service.parse_args', return_value=mock.Mock(verbose=False, soa_dir=fake_soa_dir, service='fake_service'), autospec=True), mock.patch('os.path.abspath', return_value='ABSOLUTE', autospec=True), mock.patch( 'paasta_tools.generate_deployments_for_service.get_deploy_group_mappings', return_value=({'MAP': {'docker_image': 'PINGS', 'desired_state': 'start'}}, mock.sentinel.v2_mappings), autospec=True, ), mock.patch('os.path.join', return_value='JOIN', autospec=True), mock.patch('paasta_tools.generate_deployments_for_service.open', create=True, return_value=file_mock, autospec=None), mock.patch('json.dump', autospec=True), mock.patch('json.load', return_value={'OLD_MAP': 'PINGS'}, autospec=True), mock.patch('paasta_tools.generate_deployments_for_service.atomic_file_write', autospec=True), ) as ( parse_patch, abspath_patch, mappings_patch, join_patch, open_patch, json_dump_patch, json_load_patch, atomic_file_write_patch, ): generate_deployments_for_service.main() parse_patch.assert_called_once_with() abspath_patch.assert_called_once_with(fake_soa_dir) mappings_patch.assert_called_once_with( soa_dir='ABSOLUTE', service='fake_service', old_mappings={'OLD_MAP': {'desired_state': 'start', 'docker_image': 'PINGS', 'force_bounce': None}}, ), join_patch.assert_any_call('ABSOLUTE', 'fake_service', generate_deployments_for_service.TARGET_FILE), assert join_patch.call_count == 2 atomic_file_write_patch.assert_called_once_with('JOIN') open_patch.assert_called_once_with('JOIN', 'r') json_dump_patch.assert_called_once_with( { 'v1': { 'MAP': {'docker_image': 'PINGS', 'desired_state': 'start'} }, 'v2': mock.sentinel.v2_mappings, }, atomic_file_write_patch().__enter__() ) json_load_patch.assert_called_once_with(file_mock.__enter__())
def test_main(): fake_soa_dir = '/etc/true/null' file_mock = mock.MagicMock(spec=file) with contextlib.nested( mock.patch('paasta_tools.generate_deployments_for_service.parse_args', return_value=mock.Mock(verbose=False, soa_dir=fake_soa_dir, service='fake_service'), autospec=True), mock.patch('os.path.abspath', return_value='ABSOLUTE', autospec=True), mock.patch( 'paasta_tools.generate_deployments_for_service.get_deploy_group_mappings', return_value={'MAP': {'docker_image': 'PINGS', 'desired_state': 'start'}}, autospec=True, ), mock.patch('os.path.join', return_value='JOIN', autospec=True), mock.patch('paasta_tools.generate_deployments_for_service.open', create=True, return_value=file_mock), mock.patch('json.dump', autospec=True), mock.patch('json.load', return_value={'OLD_MAP': 'PINGS'}, autospec=True), mock.patch('paasta_tools.generate_deployments_for_service.atomic_file_write', autospec=True), ) as ( parse_patch, abspath_patch, mappings_patch, join_patch, open_patch, json_dump_patch, json_load_patch, atomic_file_write_patch, ): generate_deployments_for_service.main() parse_patch.assert_called_once_with() abspath_patch.assert_called_once_with(fake_soa_dir) mappings_patch.assert_called_once_with( soa_dir='ABSOLUTE', service='fake_service', old_mappings={'OLD_MAP': {'desired_state': 'start', 'docker_image': 'PINGS', 'force_bounce': None}}, ), join_patch.assert_any_call('ABSOLUTE', 'fake_service', generate_deployments_for_service.TARGET_FILE), assert join_patch.call_count == 2 atomic_file_write_patch.assert_called_once_with('JOIN') open_patch.assert_called_once_with('JOIN', 'r') json_dump_patch.assert_called_once_with( { 'v1': { 'MAP': {'docker_image': 'PINGS', 'desired_state': 'start'} } }, atomic_file_write_patch().__enter__() ) json_load_patch.assert_called_once_with(file_mock.__enter__())
def test_main(): fake_soa_dir = "/etc/true/null" file_mock = mock.MagicMock(spec=file) with contextlib.nested( mock.patch( "paasta_tools.generate_deployments_for_service.parse_args", return_value=mock.Mock(verbose=False, soa_dir=fake_soa_dir, service="fake_service"), autospec=True, ), mock.patch("os.path.abspath", return_value="ABSOLUTE", autospec=True), mock.patch( "paasta_tools.generate_deployments_for_service.get_deploy_group_mappings", return_value={"MAP": {"docker_image": "PINGS", "desired_state": "start"}}, autospec=True, ), mock.patch("os.path.join", return_value="JOIN", autospec=True), mock.patch("paasta_tools.generate_deployments_for_service.open", create=True, return_value=file_mock), mock.patch("json.dump", autospec=True), mock.patch("json.load", return_value={"OLD_MAP": "PINGS"}, autospec=True), mock.patch("paasta_tools.generate_deployments_for_service.atomic_file_write", autospec=True), ) as ( parse_patch, abspath_patch, mappings_patch, join_patch, open_patch, json_dump_patch, json_load_patch, atomic_file_write_patch, ): generate_deployments_for_service.main() parse_patch.assert_called_once_with() abspath_patch.assert_called_once_with(fake_soa_dir) mappings_patch.assert_called_once_with( soa_dir="ABSOLUTE", service="fake_service", old_mappings={"OLD_MAP": {"desired_state": "start", "docker_image": "PINGS", "force_bounce": None}}, ), join_patch.assert_any_call("ABSOLUTE", "fake_service", generate_deployments_for_service.TARGET_FILE), assert join_patch.call_count == 2 atomic_file_write_patch.assert_called_once_with("JOIN") open_patch.assert_called_once_with("JOIN", "r") json_dump_patch.assert_called_once_with( {"v1": {"MAP": {"docker_image": "PINGS", "desired_state": "start"}}}, atomic_file_write_patch().__enter__() ) json_load_patch.assert_called_once_with(file_mock.__enter__())
def step_impl_when(context): context.deployments_file = os.path.join("fake_soa_configs", "fake_deployments_json_service", "deployments.json") try: os.remove(context.deployments_file) except OSError: pass fake_args = mock.MagicMock(service="fake_deployments_json_service", soa_dir="fake_soa_configs", verbose=True) with contextlib.nested( mock.patch( "paasta_tools.generate_deployments_for_service.get_git_url", autospec=True, return_value=context.test_git_repo_dir, ), mock.patch("paasta_tools.generate_deployments_for_service.parse_args", autospec=True, return_value=fake_args), ) as (mock_get_git_url, mock_parse_args): generate_deployments_for_service.main()
def step_impl_when(context): context.deployments_file = os.path.join( "fake_soa_configs", "fake_deployments_json_service", "deployments.json" ) try: os.remove(context.deployments_file) except OSError: pass fake_args = mock.MagicMock( service="fake_deployments_json_service", soa_dir="fake_soa_configs", verbose=True, ) with mock.patch( "paasta_tools.generate_deployments_for_service.get_git_url", autospec=True, return_value=context.test_git_repo_dir, ), mock.patch( "paasta_tools.generate_deployments_for_service.parse_args", autospec=True, return_value=fake_args, ): generate_deployments_for_service.main()
def step_impl_when(context): context.deployments_file = os.path.join('fake_soa_configs', 'fake_deployments_json_service', 'deployments.json') try: os.remove(context.deployments_file) except OSError: pass fake_args = mock.MagicMock( service='fake_deployments_json_service', soa_dir='fake_soa_configs', verbose=True, ) with contextlib.nested( mock.patch('paasta_tools.generate_deployments_for_service.get_git_url', autospec=True, return_value=context.test_git_repo_dir), mock.patch('paasta_tools.generate_deployments_for_service.parse_args', autospec=True, return_value=fake_args), mock.patch('paasta_tools.generate_deployments_for_service.get_branches_for_service', autospec=True, return_value=['paasta-test_cluster.test_instance']), ) as ( mock_get_git_url, mock_parse_args, mock_get_branches_for_service, ): generate_deployments_for_service.main()
def test_main(): fake_soa_dir = "/etc/true/null" file_mock = mock.mock_open() with mock.patch( "paasta_tools.generate_deployments_for_service.parse_args", return_value=mock.Mock(verbose=False, soa_dir=fake_soa_dir, service="fake_service"), autospec=True, ) as parse_patch, mock.patch( "os.path.abspath", return_value="ABSOLUTE", autospec=True ) as abspath_patch, mock.patch( "paasta_tools.generate_deployments_for_service.get_deploy_group_mappings", return_value=( { "MAP": { "docker_image": "PINGS", "desired_state": "start" } }, mock.sentinel.v2_mappings, ), autospec=True, ) as mappings_patch, mock.patch( "os.path.join", return_value="JOIN", autospec=True ) as join_patch, mock.patch( "builtins.open", file_mock, autospec=None ) as open_patch, mock.patch( "json.dump", autospec=True ) as json_dump_patch, mock.patch( "json.load", return_value={"OLD_MAP": "PINGS"}, autospec=True ) as json_load_patch, mock.patch( "paasta_tools.generate_deployments_for_service.atomic_file_write", autospec=True) as atomic_file_write_patch: generate_deployments_for_service.main() parse_patch.assert_called_once_with() abspath_patch.assert_called_once_with(fake_soa_dir) mappings_patch.assert_called_once_with(soa_dir="ABSOLUTE", service="fake_service"), join_patch.assert_any_call( "ABSOLUTE", "fake_service", generate_deployments_for_service.TARGET_FILE), assert join_patch.call_count == 2 atomic_file_write_patch.assert_called_once_with("JOIN") open_patch.assert_called_once_with("JOIN", "r") json_dump_patch.assert_called_once_with( { "v1": { "MAP": { "docker_image": "PINGS", "desired_state": "start" } }, "v2": mock.sentinel.v2_mappings, }, atomic_file_write_patch.return_value.__enter__.return_value, ) json_load_patch.assert_called_once_with( file_mock.return_value.__enter__.return_value) # test no update to file if content unchanged json_load_patch.return_value = { "v1": { "MAP": { "docker_image": "PINGS", "desired_state": "start" } }, "v2": mock.sentinel.v2_mappings, } json_dump_patch.reset_mock() generate_deployments_for_service.main() assert not json_dump_patch.called # test IOError path open_patch.side_effect = IOError generate_deployments_for_service.main() assert json_dump_patch.called
def test_main(): fake_soa_dir = '/etc/true/null' file_mock = mock.mock_open() with mock.patch( 'paasta_tools.generate_deployments_for_service.parse_args', return_value=mock.Mock(verbose=False, soa_dir=fake_soa_dir, service='fake_service'), autospec=True, ) as parse_patch, mock.patch( 'os.path.abspath', return_value='ABSOLUTE', autospec=True, ) as abspath_patch, mock.patch( 'paasta_tools.generate_deployments_for_service.get_deploy_group_mappings', return_value=({ 'MAP': { 'docker_image': 'PINGS', 'desired_state': 'start' } }, mock.sentinel.v2_mappings), autospec=True, ) as mappings_patch, mock.patch( 'os.path.join', return_value='JOIN', autospec=True, ) as join_patch, mock.patch( 'builtins.open', file_mock, autospec=None, ) as open_patch, mock.patch( 'json.dump', autospec=True, ) as json_dump_patch, mock.patch( 'json.load', return_value={'OLD_MAP': 'PINGS'}, autospec=True, ) as json_load_patch, mock.patch( 'paasta_tools.generate_deployments_for_service.atomic_file_write', autospec=True, ) as atomic_file_write_patch: generate_deployments_for_service.main() parse_patch.assert_called_once_with() abspath_patch.assert_called_once_with(fake_soa_dir) mappings_patch.assert_called_once_with( soa_dir='ABSOLUTE', service='fake_service', ), join_patch.assert_any_call( 'ABSOLUTE', 'fake_service', generate_deployments_for_service.TARGET_FILE), assert join_patch.call_count == 2 atomic_file_write_patch.assert_called_once_with('JOIN') open_patch.assert_called_once_with('JOIN', 'r') json_dump_patch.assert_called_once_with( { 'v1': { 'MAP': { 'docker_image': 'PINGS', 'desired_state': 'start' }, }, 'v2': mock.sentinel.v2_mappings, }, atomic_file_write_patch.return_value.__enter__.return_value, ) json_load_patch.assert_called_once_with( file_mock.return_value.__enter__.return_value) # test no update to file if content unchanged json_load_patch.return_value = { 'v1': { 'MAP': { 'docker_image': 'PINGS', 'desired_state': 'start' }, }, 'v2': mock.sentinel.v2_mappings, } json_dump_patch.reset_mock() generate_deployments_for_service.main() assert not json_dump_patch.called # test IOError path open_patch.side_effect = IOError generate_deployments_for_service.main() assert json_dump_patch.called