def setup_method(self, method): super(TestFilteredPullRequestsCommand, self).setup_method(method) self.scc_parser, self.sub_parser = parsers() self.command = FilteredPullRequestsCommand(self.sub_parser) self.filters = {'include': {}, 'exclude': {}} self.command.filters = {'include': {}, 'exclude': {}}
class TestFilteredPullRequestsCommand(MoxTestBase): TYPES = ['include', 'exclude'] REPOS = ['user/repo', 'user-1/repo-2'] BRANCHES = ['branch', 'branch-1', 'branch_1', 'branch_1.2.0-SNAPSHOT'] def setup_method(self, method): super(TestFilteredPullRequestsCommand, self).setup_method(method) self.scc_parser, self.sub_parser = parsers() self.command = FilteredPullRequestsCommand(self.sub_parser) self.filters = {'include': {}, 'exclude': {}} self.command.filters = {'include': {}, 'exclude': {}} @pytest.mark.parametrize('ftype', ['include', 'exclude']) @pytest.mark.parametrize('value', ['', '#12#12', 'pr:12', '#st']) def test_parse_hash_invalid(self, ftype, value): rsp = self.command._parse_hash(ftype, value) assert not rsp assert self.command.filters == self.filters @pytest.mark.parametrize('ftype', TYPES) def test_parse_pr_hash(self, ftype): rsp = self.command._parse_hash(ftype, '#1') self.filters[ftype] = {'pr': ['#1']} assert rsp assert self.command.filters == self.filters @pytest.mark.parametrize('ftype', TYPES) @pytest.mark.parametrize( 'invalid_key_value', ['keyvalue', '#1', ':value', 'key:', 'user#repo:value']) def test_parse_key_value_invalid(self, ftype, invalid_key_value): rsp = self.command._parse_key_value(ftype, '%s' % invalid_key_value) assert not rsp assert self.command.filters == self.filters @pytest.mark.parametrize('ftype', TYPES) @pytest.mark.parametrize( 'key', ['user', 'label', 'pr', 'user/repo', 'user-1/repo-2']) @pytest.mark.parametrize('value', ['1', 'value', 'value-1', 'value/1']) def test_parse_key_value(self, ftype, key, value): self.command._parse_key_value(ftype, '%s:%s' % (key, value)) if key == 'pr': value = '#' + value self.filters[ftype] = {key: [value]} assert self.command.filters == self.filters @pytest.mark.parametrize('ftype', TYPES) @pytest.mark.parametrize('key', REPOS) def test_parse_pr_string(self, ftype, key): rsp = self.command._parse_hash(ftype, '%s#1' % key) self.filters[ftype] = {key: ['#1']} assert rsp assert self.command.filters == self.filters @pytest.mark.parametrize('ftype', TYPES) @pytest.mark.parametrize('key', REPOS) @pytest.mark.parametrize('value', ['1']) def test_parse_pr_github(self, ftype, key, value): self.command._parse_url( ftype, 'https://github.com/%s/pull/%s' % (key, value)) self.filters[ftype] = {key: ['#' + value]} assert self.command.filters == self.filters @pytest.mark.parametrize('ftype', TYPES) @pytest.mark.parametrize('key', REPOS) @pytest.mark.parametrize('value', BRANCHES) def test_parse_branch_github(self, ftype, key, value): self.command._parse_branch_url( ftype, 'https://github.com/%s/tree/%s' % (key, value)) self.filters[ftype] = {key: [value]} assert self.command.filters == self.filters @pytest.mark.parametrize('ftype', TYPES) @pytest.mark.parametrize('key', REPOS) @pytest.mark.parametrize('value', BRANCHES) def test_parse_branch_string(self, ftype, key, value): self.command._parse_branch_string(ftype, '%s:%s' % (key, value)) self.filters[ftype] = {key: [value]} assert self.command.filters == self.filters