def test_we_can_add_single_keyword(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.keywords.append('ateam-marionette-server') output = bug.diff() assert isinstance(output, dict) assert output == {'keywords': {'add': ['ateam-marionette-server']}} assert ['regression', 'ateam-marionette-server'] == bug.keywords
def test_bug_update_updates_copy_dict(bug_return, comments_return): responses.add(responses.GET, 'https://bugzilla.mozilla.org/rest/login', body='{"token": "foobar"}', status=200, content_type='application/json', match_querystring=True) bugzilla = Bugsy("foo", "bar") bug = Bug(bugzilla, **bug_return['bugs'][0]) bug.status = 'NEW' diff = bug.diff() bug_dict = copy.deepcopy(bug_return) bug_dict['bugs'][0]['status'] = 'NEW' responses.add(responses.GET, 'https://bugzilla.mozilla.org/rest/bug/1017315', body=json.dumps(bug_dict), status=200, content_type='application/json') responses.add(responses.PUT, 'https://bugzilla.mozilla.org/rest/bug/1017315', body=json.dumps(diff), status=200, content_type='application/json') bugzilla.put(bug) bug.update() assert bug._copy['status'] == 'NEW'
def test_we_can_add_multiple_emails_to_cc_list(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.cc.extend(['*****@*****.**', '*****@*****.**']) output = bug.diff() assert isinstance(output, dict) assert sorted(output['cc']['add']) == sorted( ['*****@*****.**', '*****@*****.**'])
def test_we_can_add_remove_a_keyword_list(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.keywords.remove('regression') output = bug.diff() assert isinstance(output, dict) assert output == {'keywords': {'remove': ['regression']}} keywords = bug.keywords assert [] == keywords
def test_we_can_add_multiple_keywords_to_list(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.keywords.extend(['intermittent', 'ateam-marionette-server']) output = bug.diff() assert isinstance(output, dict) assert sorted(output['keywords']['add']) == sorted( ['intermittent', 'ateam-marionette-server']) keywords = bug.keywords assert sorted(['regression', 'intermittent', 'ateam-marionette-server']) == sorted(keywords)
def test_we_can_add_and_remove_blocks(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.blocks.remove(654321) bug.blocks.append(145123) output = bug.diff() assert isinstance(output, dict) assert output == {'blocks': {'add': [145123], 'remove': [654321]}} deps = bug.blocks assert isinstance(deps, list) assert [145123] == deps
def test_we_can_add_and_remove_depends_on(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.depends_on.remove(123456) bug.depends_on.append(145123) output = bug.diff() assert isinstance(output, dict) assert output == {'depends_on': {'add': [145123], 'remove': [123456]}} deps = bug.depends_on assert isinstance(deps, list) assert [145123] == deps
def test_we_can_add_remove_an_email_to_cc_list(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.cc.append('*****@*****.**') bug.cc.remove('*****@*****.**') output = bug.diff() assert isinstance(output, dict) assert output == { 'cc': { 'add': ['*****@*****.**'], 'remove': ['*****@*****.**'] } }
def test_we_can_add_single_email_to_cc_list(bug_return): bug = Bug(**bug_return['bugs'][0]) bug.cc.append('*****@*****.**') output = bug.diff() assert isinstance(output, dict) assert output == {'cc': {'add': ['*****@*****.**']}}
def test_adding_new_field_to_existing_bug(): # This can occur if a bug is retrieved using limited fields bug = Bug({}) bug.alias = 'foobar' diff = bug.diff() assert diff['alias'] == 'foobar'