def test_defaulting(self, mock_parse): parsed_options = { 'url': None, 'working_dir': None, 'output_dir': None, 'path': None, 'branch': None, 'tag': None } # working_dir defaulted to CWD mock_parse.return_value = (Values(defaults=parsed_options), []) options = builder.get_options() self.assertEqual(options.working_dir, os.getcwd()) # working_dir defaulted to args[0] mock_parse.return_value = (Values(defaults=parsed_options), ['/tmp']) options = builder.get_options() self.assertEqual(options.working_dir, '/tmp') # output_dir defaulted to working_dir parsed_options['working_dir'] = '/abc' mock_parse.return_value = (Values(defaults=parsed_options), ['/tmp']) options = builder.get_options() self.assertEqual(options.output_dir, '/abc')
def test_options(self, mock_parser, mock_group): parser = OptionParser() mock_parser.return_value = parser parser.add_option = Mock(side_effect=parser.add_option) parser.add_option_group = Mock(side_effect=parser.add_option_group) parser._get_args = Mock(return_value=[]) group = OptionGroup(parser, '') mock_group.return_value = group group.add_option = Mock(side_effect=group.add_option) # test builder.get_options() # validation parser.add_option.assert_any_call( '-w', '--working-dir', dest='working_dir', help=builder.WORKING_DIR) parser.add_option.assert_any_call( '-o', '--output-dir', dest='output_dir', help=builder.OUTPUT_DIR) parser.add_option.assert_any_call( '-c', '--clean', default=False, action='store_true', help=builder.CLEAN) parser.add_option.assert_any_call('-p', '--path', help=builder.PATH) parser.add_option_group.assert_called_with(group) group.add_option.assert_any_call('-u', '--url', help=builder.URL) group.add_option.assert_any_call('-b', '--branch', help=builder.BRANCH) group.add_option.assert_any_call('-t', '--tag', help=builder.TAG)
def test_parser(self, mock_parser): parser = OptionParser() parser._get_args = Mock(return_value=[]) mock_parser.return_value = parser # test builder.get_options() # validation mock_parser.assert_called_with(usage=builder.USAGE, description=builder.DESCRIPTION)
def test_validate_both_branch_and_tag(self, mock_parse, mock_stdout, mock_exit): parsed_options = { 'working_dir': None, 'output_dir': None, 'path': None, 'branch': 'br', 'tag': 'tg' } mock_parse.return_value = (Values(defaults=parsed_options), []) # test builder.get_options() # validation mock_stdout.assert_any_call(builder.BAD_BRANCH_AND_TAG) mock_exit.assert_called_with(os.EX_USAGE)
def test_validate_path(self, mock_parse, mock_stdout, mock_exit): parsed_options = { 'url': None, 'working_dir': None, 'output_dir': None, 'path': '/', 'branch': None, 'tag': None } mock_parse.return_value = (Values(defaults=parsed_options), []) # test builder.get_options() # validation mock_stdout.assert_any_call(builder.BAD_PATH) mock_exit.assert_called_with(os.EX_USAGE)
def test_clean_url(self, mock_parse): parsed_options = { 'url': 'git@test:/pulp/', 'working_dir': '~/', 'output_dir': '~/', 'path': None, 'branch': None, 'tag': None } mock_parse.return_value = (Values(defaults=parsed_options), []) # test options = builder.get_options() # validation self.assertEqual(options.url, parsed_options['url'].rstrip('/'))
def test_expanded_paths(self, mock_parse): parsed_options = { 'working_dir': '~/', 'output_dir': '~/', 'path': None, 'branch': None, 'tag': None } mock_parse.return_value = (Values(defaults=parsed_options), []) # test options = builder.get_options() # validation self.assertEqual(options.working_dir, os.path.expanduser('~/')) self.assertEqual(options.output_dir, os.path.expanduser('~/'))