diff --git a/tests/__init__.py b/tests/__init__.py index a1f80c0..2ad6541 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -8,9 +8,12 @@ """ +from __future__ import unicode_literals + __requires__ = ['SQLAlchemy >= 0.7'] import pkg_resources +import imp import json import logging import os @@ -22,21 +25,21 @@ import sys import tempfile import time import unittest +from io import StringIO logging.basicConfig(stream=sys.stderr) -# Always enable performance counting for tests -os.environ['PAGURE_PERFREPO'] = 'true' - +from bs4 import BeautifulSoup from contextlib import contextmanager from datetime import date from datetime import datetime from datetime import timedelta from functools import wraps -from urlparse import urlparse, parse_qs +from six.moves.urllib.parse import urlparse, parse_qs import mock import pygit2 import redis +import six from bs4 import BeautifulSoup from celery.app.task import EagerResult @@ -44,6 +47,10 @@ from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import scoped_session +if six.PY2: + # Always enable performance counting for tests + os.environ['PAGURE_PERFREPO'] = 'true' + sys.path.insert(0, os.path.join(os.path.dirname( os.path.abspath(__file__)), '..')) @@ -82,6 +89,7 @@ ATTACHMENTS_FOLDER = '%(path)s/attachments' BROKER_URL = 'redis+socket://%(global_path)s/broker' CELERY_CONFIG = { "task_always_eager": True, + #"task_eager_propagates": True, } """ # The Celery docs warn against using task_always_eager: @@ -132,21 +140,29 @@ def create_maybe_waiter(method, getter): # Handle the POST wait case form_url = None form_args = None - if 'id="waitform"' in result.data: - form_url = get_post_target(result.data) - form_args = get_post_args(result.data) - form_args['csrf_token'] = result.data.split( + try: + result_text = result.get_data(as_text=True) + except UnicodeDecodeError: + return result + if 'id="waitform"' in result_text: + form_url = get_post_target(result_text) + form_args = get_post_args(result_text) + form_args['csrf_token'] = result_text.split( 'name="csrf_token" type="hidden" value="')[1].split('">')[0] count = 0 - while 'We are waiting for your task to finish.' in result.data: + while 'We are waiting for your task to finish.' in result_text: # Resolve wait page - target_url = get_wait_target(result.data) + target_url = get_wait_target(result_text) if count > 10: time.sleep(0.5) else: time.sleep(0.1) result = getter(target_url, follow_redirects=True) + try: + result_text = result.get_data(as_text=True) + except UnicodeDecodeError: + return result if count > 50: raise Exception('Had to wait too long') else: @@ -199,7 +215,7 @@ def _populate_db(session): item = pagure.lib.model.User( user='pingou', fullname='PY C', - password='foo', + password=b'foo', default_email='bar@pingou.com', ) session.add(item) @@ -215,7 +231,7 @@ def _populate_db(session): item = pagure.lib.model.User( user='foo', fullname='foo bar', - password='foo', + password=b'foo', default_email='foo@bar.com', ) session.add(item) @@ -345,8 +361,8 @@ class SimplePagureTest(unittest.TestCase): os.environ["PAGURE_CONFIG"] = config_path pagure_config.update(reload_config()) - reload(pagure.lib.tasks) - reload(pagure.lib.tasks_services) + imp.reload(pagure.lib.tasks) + imp.reload(pagure.lib.tasks_services) self._app = pagure.flask_app.create_app({'DB_URL': self.dbpath}) # Remove the log handlers for the tests @@ -409,7 +425,7 @@ class SimplePagureTest(unittest.TestCase): output = self.app.get(url) self.assertEqual(output.status_code, 200) - return output.data.split( + return output.get_data(as_text=True).split( 'name="csrf_token" type="hidden" value="')[1].split('">')[0] def assertURLEqual(self, url_1, url_2): @@ -460,7 +476,7 @@ class FakeUser(object): # pylint: disable=too-few-public-methods :arg groups: list of the groups in which this fake user is supposed to be. """ - if isinstance(groups, basestring): + if isinstance(groups, six.string_types): groups = [groups] self.id = id self.groups = groups or [] @@ -916,8 +932,6 @@ def add_binary_git_repo(folder, filename): @contextmanager def capture_output(merge_stderr=True): - import sys - from cStringIO import StringIO oldout, olderr = sys.stdout, sys.stderr try: out = StringIO() @@ -932,6 +946,26 @@ def capture_output(merge_stderr=True): sys.stdout, sys.stderr = oldout, olderr +def get_alerts(html): + soup = BeautifulSoup(html, "html.parser") + alerts = [] + for element in soup.find_all("div", class_="alert"): + severity = None + for class_ in element["class"]: + if not class_.startswith("alert-"): + continue + if class_ == "alert-dismissible": + continue + severity = class_[len("alert-"):] + break + element.find("button").decompose() # close button + alerts.append(dict( + severity=severity, + text="".join(element.stripped_strings) + )) + return alerts + + if __name__ == '__main__': SUITE = unittest.TestLoader().loadTestsFromTestCase(Modeltests) unittest.TextTestRunner(verbosity=2).run(SUITE) diff --git a/tests/test_alembic.py b/tests/test_alembic.py index 6aec50c..9b35983 100644 --- a/tests/test_alembic.py +++ b/tests/test_alembic.py @@ -34,7 +34,7 @@ class TestAlembic(unittest.TestCase): ['grep', ' (head), '], stdin=proc1.stdout, stdout=subprocess.PIPE) stdout = proc2.communicate()[0] - stdout = stdout.strip().split('\n') + stdout = stdout.strip().decode('utf-8').split('\n') self.assertEqual(len(stdout), 1) diff --git a/tests/test_pagure_flask.py b/tests/test_pagure_flask.py index f2412a0..85ec699 100644 --- a/tests/test_pagure_flask.py +++ b/tests/test_pagure_flask.py @@ -56,7 +56,8 @@ class PagureGetRemoteRepoPath(tests.SimplePagureTest): """ Test is_repo_committer in pagure when there is no logged in user. """ repo = pagure.lib._get_project(self.session, 'test') - output = pagure.utils.is_repo_committer(repo) + with self.app.application.app_context(): + output = pagure.utils.is_repo_committer(repo) self.assertFalse(output) def test_is_repo_committer_logged_in(self): diff --git a/tests/test_pagure_flask_api.py b/tests/test_pagure_flask_api.py index 927e497..bd239f4 100644 --- a/tests/test_pagure_flask_api.py +++ b/tests/test_pagure_flask_api.py @@ -35,9 +35,9 @@ class PagureFlaskApitests(tests.SimplePagureTest): output = self.app.get('/api/0/version') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(data['version'], pagure.__api_version__) - self.assertEqual(data.keys(), ['version']) + self.assertEqual(sorted(data.keys()), ['version']) def test_api_project_tags(self): """ Test the api_project_tags function. """ @@ -45,14 +45,14 @@ class PagureFlaskApitests(tests.SimplePagureTest): output = self.app.get('/api/0/foo/tags/') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(set(data.keys()), set(['output', 'error'])) self.assertEqual(data['output'], 'notok') self.assertEqual(data['error'], 'Project not found') output = self.app.get('/api/0/test/tags/') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['tags', 'total_tags']) self.assertEqual(data['tags'], []) self.assertEqual(data['total_tags'], 0) @@ -82,25 +82,60 @@ class PagureFlaskApitests(tests.SimplePagureTest): output = self.app.get('/api/0/test/tags/') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['tags', 'total_tags']) self.assertEqual(data['tags'], ['tag1']) self.assertEqual(data['total_tags'], 1) output = self.app.get('/api/0/test/tags/?pattern=t') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['tags', 'total_tags']) self.assertEqual(data['tags'], ['tag1']) self.assertEqual(data['total_tags'], 1) output = self.app.get('/api/0/test/tags/?pattern=p') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['tags', 'total_tags']) self.assertEqual(data['tags'], []) self.assertEqual(data['total_tags'], 0) + def test_api_groups(self): + """ Test the api_groups function. """ + + # Add a couple of groups so that we can list them + item = pagure.lib.model.PagureGroup( + group_name='group1', + group_type='user', + display_name='User group', + user_id=1, # pingou + ) + self.session.add(item) + + item = pagure.lib.model.PagureGroup( + group_name='rel-eng', + group_type='user', + display_name='Release engineering group', + user_id=1, # pingou + ) + self.session.add(item) + self.session.commit() + + output = self.app.get('/api/0/groups') + self.assertEqual(output.status_code, 200) + data = json.loads(output.get_data(as_text=True)) + self.assertEqual(data['groups'], ['group1', 'rel-eng']) + self.assertEqual(sorted(data.keys()), ['groups', 'total_groups']) + self.assertEqual(data['total_groups'], 2) + + output = self.app.get('/api/0/groups?pattern=re') + self.assertEqual(output.status_code, 200) + data = json.loads(output.get_data(as_text=True)) + self.assertEqual(data['groups'], ['rel-eng']) + self.assertEqual(sorted(data.keys()), ['groups', 'total_groups']) + self.assertEqual(data['total_groups'], 1) + if __name__ == '__main__': unittest.main(verbosity=2) diff --git a/tests/test_pagure_flask_api_auth.py b/tests/test_pagure_flask_api_auth.py index 9369886..98dd387 100644 --- a/tests/test_pagure_flask_api_auth.py +++ b/tests/test_pagure_flask_api_auth.py @@ -36,7 +36,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/foo/new_issue') self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -45,7 +45,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/foo/new_issue', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -58,7 +58,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/test/new_issue') self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -67,7 +67,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/test/new_issue', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -80,7 +80,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/test/new_issue') self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -89,7 +89,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/test/new_issue', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -103,7 +103,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/test/new_issue') self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -112,7 +112,7 @@ class PagureFlaskApiAuthtests(tests.SimplePagureTest): output = self.app.post('/api/0/test/new_issue', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { diff --git a/tests/test_pagure_flask_api_fork.py b/tests/test_pagure_flask_api_fork.py index 65f1b82..d2e51ec 100644 --- a/tests/test_pagure_flask_api_fork.py +++ b/tests/test_pagure_flask_api_fork.py @@ -8,6 +8,8 @@ """ +from __future__ import unicode_literals + __requires__ = ['SQLAlchemy >= 0.8'] import pkg_resources @@ -69,7 +71,7 @@ class PagureFlaskApiForktests(tests.Modeltests): # Invalid repo output = self.app.get('/api/0/foo/pull-requests') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -81,7 +83,7 @@ class PagureFlaskApiForktests(tests.Modeltests): # List pull-requests output = self.app.get('/api/0/test/pull-requests') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['requests'][0]['date_created'] = '1431414800' data['requests'][0]['updated_on'] = '1431414800' data['requests'][0]['project']['date_created'] = '1431414800' @@ -200,7 +202,7 @@ class PagureFlaskApiForktests(tests.Modeltests): # Access Pull-Request authenticated output = self.app.get('/api/0/test/pull-requests', headers=headers) self.assertEqual(output.status_code, 200) - data2 = json.loads(output.data) + data2 = json.loads(output.get_data(as_text=True)) data2['requests'][0]['date_created'] = '1431414800' data2['requests'][0]['updated_on'] = '1431414800' data2['requests'][0]['project']['date_created'] = '1431414800' @@ -239,7 +241,7 @@ class PagureFlaskApiForktests(tests.Modeltests): # Invalid repo output = self.app.get('/api/0/foo/pull-request/1') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -251,7 +253,7 @@ class PagureFlaskApiForktests(tests.Modeltests): # Invalid issue for this repo output = self.app.get('/api/0/test2/pull-request/1') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -263,7 +265,7 @@ class PagureFlaskApiForktests(tests.Modeltests): # Valid issue output = self.app.get('/api/0/test/pull-request/1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1431414800' data['updated_on'] = '1431414800' data['project']['date_created'] = '1431414800' @@ -372,7 +374,7 @@ class PagureFlaskApiForktests(tests.Modeltests): # Access Pull-Request authenticated output = self.app.get('/api/0/test/pull-request/1', headers=headers) self.assertEqual(output.status_code, 200) - data2 = json.loads(output.data) + data2 = json.loads(output.get_data(as_text=True)) data2['date_created'] = '1431414800' data2['project']['date_created'] = '1431414800' data2['project']['date_modified'] = '1431414800' @@ -416,7 +418,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/close', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -429,7 +431,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/close', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -438,7 +440,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/2/close', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'error': 'Pull-Request not found', 'error_code': "ENOREQ"} @@ -473,7 +475,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/close', headers=headers) self.assertEqual(output.status_code, 403) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -489,7 +491,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/close', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {"message": "Pull-request closed!"} @@ -533,7 +535,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -546,7 +548,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -555,7 +557,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/2/merge', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'error': 'Pull-Request not found', 'error_code': "ENOREQ"} @@ -590,7 +592,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 403) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -606,7 +608,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {"message": "Changes merged!"} @@ -650,7 +652,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -663,7 +665,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'error': 'Pull-Request not found', 'error_code': "ENOREQ"} @@ -673,7 +675,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/2/merge', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'error': 'Pull-Request not found', 'error_code': "ENOREQ"} @@ -709,7 +711,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 403) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -725,7 +727,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/merge', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {"message": "Changes merged!"} @@ -746,7 +748,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -759,7 +761,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/comment', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -768,7 +770,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -808,7 +810,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -832,7 +834,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} @@ -859,7 +861,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -872,7 +874,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -885,7 +887,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -925,7 +927,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -949,7 +951,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} @@ -992,7 +994,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/subscribe', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1005,7 +1007,7 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/subscribe', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -1014,12 +1016,12 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/subscribe', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Pull-Request not found', - u'error_code': u'ENOREQ' + 'error': 'Pull-Request not found', + 'error_code': 'ENOREQ' } ) @@ -1053,7 +1055,7 @@ class PagureFlaskApiForktests(tests.Modeltests): '/api/0/test/pull-request/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are no longer watching this pull-request'} @@ -1064,7 +1066,7 @@ class PagureFlaskApiForktests(tests.Modeltests): '/api/0/test/pull-request/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are no longer watching this pull-request'} @@ -1084,7 +1086,7 @@ class PagureFlaskApiForktests(tests.Modeltests): '/api/0/test/pull-request/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are now watching this pull-request'} @@ -1096,7 +1098,7 @@ class PagureFlaskApiForktests(tests.Modeltests): '/api/0/test/pull-request/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are now watching this pull-request'} @@ -1115,7 +1117,7 @@ class PagureFlaskApiForktests(tests.Modeltests): '/api/0/test/pull-request/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are no longer watching this pull-request'} @@ -1154,10 +1156,10 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/foobar/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, - {u'error': u'Project not found', u'error_code': u'ENOPROJECT'} + {'error': 'Project not found', 'error_code': 'ENOPROJECT'} ) @patch('pagure.lib.notify.send_email', MagicMock(return_value=True)) @@ -1186,13 +1188,13 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Invalid or incomplete input submitted', - u'error_code': u'EINVALIDREQ', - u'errors': {u'title': [u'This field is required.']} + 'error': 'Invalid or incomplete input submitted', + 'error_code': 'EINVALIDREQ', + 'errors': {'title': ['This field is required.']} } ) @@ -1222,13 +1224,13 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Invalid or incomplete input submitted', - u'error_code': u'EINVALIDREQ', - u'errors': {u'branch_to': [u'This field is required.']} + 'error': 'Invalid or incomplete input submitted', + 'error_code': 'EINVALIDREQ', + 'errors': {'branch_to': ['This field is required.']} } ) @@ -1258,13 +1260,13 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Invalid or incomplete input submitted', - u'error_code': u'EINVALIDREQ', - u'errors': {u'branch_from': [u'This field is required.']} + 'error': 'Invalid or incomplete input submitted', + 'error_code': 'EINVALIDREQ', + 'errors': {'branch_from': ['This field is required.']} } ) @@ -1303,12 +1305,12 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Pull-Request have been deactivated for this project', - u'error_code': u'EPULLREQUESTSDISABLED' + 'error': 'Pull-Request have been deactivated for this project', + 'error_code': 'EPULLREQUESTSDISABLED' } ) @@ -1347,13 +1349,13 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'This repo enforces that all commits are signed ' + 'error': 'This repo enforces that all commits are signed ' 'off by their author.', - u'error_code': u'ENOSIGNEDOFF' + 'error_code': 'ENOSIGNEDOFF' } ) @@ -1392,13 +1394,13 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Invalid or incomplete input submitted', - u'error_code': u'EINVALIDREQ', - u'errors': u'Branch foobarbaz does not exist' + 'error': 'Invalid or incomplete input submitted', + 'error_code': 'EINVALIDREQ', + 'errors': 'Branch foobarbaz does not exist' } ) @@ -1437,13 +1439,13 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Invalid or incomplete input submitted', - u'error_code': u'EINVALIDREQ', - u'errors': u'Branch foobarbaz could not be found in the ' + 'error': 'Invalid or incomplete input submitted', + 'error_code': 'EINVALIDREQ', + 'errors': 'Branch foobarbaz could not be found in the ' 'target repo' } ) @@ -1473,89 +1475,89 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['project']['date_created'] = u'1516348115' - data['project']['date_modified'] = u'1516348115' - data['repo_from']['date_created'] = u'1516348115' - data['repo_from']['date_modified'] = u'1516348115' - data['uid'] = u'e8b68df8711648deac67c3afed15a798' - data['commit_start'] = u'114f1b468a5f05e635fcb6394273f3f907386eab' - data['commit_stop'] = u'114f1b468a5f05e635fcb6394273f3f907386eab' - data['date_created'] = u'1516348115' - data['last_updated'] = u'1516348115' - data['updated_on'] = u'1516348115' + data = json.loads(output.get_data(as_text=True)) + data['project']['date_created'] = '1516348115' + data['project']['date_modified'] = '1516348115' + data['repo_from']['date_created'] = '1516348115' + data['repo_from']['date_modified'] = '1516348115' + data['uid'] = 'e8b68df8711648deac67c3afed15a798' + data['commit_start'] = '114f1b468a5f05e635fcb6394273f3f907386eab' + data['commit_stop'] = '114f1b468a5f05e635fcb6394273f3f907386eab' + data['date_created'] = '1516348115' + data['last_updated'] = '1516348115' + data['updated_on'] = '1516348115' self.assertDictEqual( data, { - u'assignee': None, - u'branch': u'master', - u'branch_from': u'test', - u'cached_merge_status': u'unknown', - u'closed_at': None, - u'closed_by': None, - u'comments': [], - u'commit_start': u'114f1b468a5f05e635fcb6394273f3f907386eab', - u'commit_stop': u'114f1b468a5f05e635fcb6394273f3f907386eab', - u'date_created': u'1516348115', - u'id': 1, - u'initial_comment': u'Nothing much, the changes speak for themselves', - u'last_updated': u'1516348115', - u'project': {u'access_groups': {u'admin': [], - u'commit': [], - u'ticket':[]}, - u'access_users': {u'admin': [], - u'commit': [], - u'owner': [u'pingou'], - u'ticket': []}, - u'close_status': [u'Invalid', - u'Insufficient data', - u'Fixed', - u'Duplicate'], - u'custom_keys': [], - u'date_created': u'1516348115', - u'date_modified': u'1516348115', - u'description': u'test project #1', - u'fullname': u'test', - u'id': 1, - u'milestones': {}, - u'name': u'test', - u'namespace': None, - u'parent': None, - u'priorities': {}, - u'tags': [], - u'url_path': u'test', - u'user': {u'fullname': u'PY C', u'name': u'pingou'}}, - u'remote_git': None, - u'repo_from': {u'access_groups': {u'admin': [], - u'commit': [], - u'ticket': []}, - u'access_users': {u'admin': [], - u'commit': [], - u'owner': [u'pingou'], - u'ticket': []}, - u'close_status': [u'Invalid', - u'Insufficient data', - u'Fixed', - u'Duplicate'], - u'custom_keys': [], - u'date_created': u'1516348115', - u'date_modified': u'1516348115', - u'description': u'test project #1', - u'fullname': u'test', - u'id': 1, - u'milestones': {}, - u'name': u'test', - u'namespace': None, - u'parent': None, - u'priorities': {}, - u'tags': [], - u'url_path': u'test', - u'user': {u'fullname': u'PY C', u'name': u'pingou'}}, - u'status': u'Open', - u'title': u'Test PR', - u'uid': u'e8b68df8711648deac67c3afed15a798', - u'updated_on': u'1516348115', - u'user': {u'fullname': u'PY C', u'name': u'pingou'} + 'assignee': None, + 'branch': 'master', + 'branch_from': 'test', + 'cached_merge_status': 'unknown', + 'closed_at': None, + 'closed_by': None, + 'comments': [], + 'commit_start': '114f1b468a5f05e635fcb6394273f3f907386eab', + 'commit_stop': '114f1b468a5f05e635fcb6394273f3f907386eab', + 'date_created': '1516348115', + 'id': 1, + 'initial_comment': 'Nothing much, the changes speak for themselves', + 'last_updated': '1516348115', + 'project': {'access_groups': {'admin': [], + 'commit': [], + 'ticket':[]}, + 'access_users': {'admin': [], + 'commit': [], + 'owner': ['pingou'], + 'ticket': []}, + 'close_status': ['Invalid', + 'Insufficient data', + 'Fixed', + 'Duplicate'], + 'custom_keys': [], + 'date_created': '1516348115', + 'date_modified': '1516348115', + 'description': 'test project #1', + 'fullname': 'test', + 'id': 1, + 'milestones': {}, + 'name': 'test', + 'namespace': None, + 'parent': None, + 'priorities': {}, + 'tags': [], + 'url_path': 'test', + 'user': {'fullname': 'PY C', 'name': 'pingou'}}, + 'remote_git': None, + 'repo_from': {'access_groups': {'admin': [], + 'commit': [], + 'ticket': []}, + 'access_users': {'admin': [], + 'commit': [], + 'owner': ['pingou'], + 'ticket': []}, + 'close_status': ['Invalid', + 'Insufficient data', + 'Fixed', + 'Duplicate'], + 'custom_keys': [], + 'date_created': '1516348115', + 'date_modified': '1516348115', + 'description': 'test project #1', + 'fullname': 'test', + 'id': 1, + 'milestones': {}, + 'name': 'test', + 'namespace': None, + 'parent': None, + 'priorities': {}, + 'tags': [], + 'url_path': 'test', + 'user': {'fullname': 'PY C', 'name': 'pingou'}}, + 'status': 'Open', + 'title': 'Test PR', + 'uid': 'e8b68df8711648deac67c3afed15a798', + 'updated_on': '1516348115', + 'user': {'fullname': 'PY C', 'name': 'pingou'} } ) @@ -1585,89 +1587,89 @@ class PagureFlaskApiForktests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/new', headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['project']['date_created'] = u'1516348115' - data['project']['date_modified'] = u'1516348115' - data['repo_from']['date_created'] = u'1516348115' - data['repo_from']['date_modified'] = u'1516348115' - data['uid'] = u'e8b68df8711648deac67c3afed15a798' - data['commit_start'] = u'114f1b468a5f05e635fcb6394273f3f907386eab' - data['commit_stop'] = u'114f1b468a5f05e635fcb6394273f3f907386eab' - data['date_created'] = u'1516348115' - data['last_updated'] = u'1516348115' - data['updated_on'] = u'1516348115' + data = json.loads(output.get_data(as_text=True)) + data['project']['date_created'] = '1516348115' + data['project']['date_modified'] = '1516348115' + data['repo_from']['date_created'] = '1516348115' + data['repo_from']['date_modified'] = '1516348115' + data['uid'] = 'e8b68df8711648deac67c3afed15a798' + data['commit_start'] = '114f1b468a5f05e635fcb6394273f3f907386eab' + data['commit_stop'] = '114f1b468a5f05e635fcb6394273f3f907386eab' + data['date_created'] = '1516348115' + data['last_updated'] = '1516348115' + data['updated_on'] = '1516348115' self.assertDictEqual( data, { - u'assignee': None, - u'branch': u'master', - u'branch_from': u'test', - u'cached_merge_status': u'unknown', - u'closed_at': None, - u'closed_by': None, - u'comments': [], - u'commit_start': u'114f1b468a5f05e635fcb6394273f3f907386eab', - u'commit_stop': u'114f1b468a5f05e635fcb6394273f3f907386eab', - u'date_created': u'1516348115', - u'id': 1, - u'initial_comment': None, - u'last_updated': u'1516348115', - u'project': {u'access_groups': {u'admin': [], - u'commit': [], - u'ticket':[]}, - u'access_users': {u'admin': [], - u'commit': [], - u'owner': [u'pingou'], - u'ticket': []}, - u'close_status': [u'Invalid', - u'Insufficient data', - u'Fixed', - u'Duplicate'], - u'custom_keys': [], - u'date_created': u'1516348115', - u'date_modified': u'1516348115', - u'description': u'test project #1', - u'fullname': u'test', - u'id': 1, - u'milestones': {}, - u'name': u'test', - u'namespace': None, - u'parent': None, - u'priorities': {}, - u'tags': [], - u'url_path': u'test', - u'user': {u'fullname': u'PY C', u'name': u'pingou'}}, - u'remote_git': None, - u'repo_from': {u'access_groups': {u'admin': [], - u'commit': [], - u'ticket': []}, - u'access_users': {u'admin': [], - u'commit': [], - u'owner': [u'pingou'], - u'ticket': []}, - u'close_status': [u'Invalid', - u'Insufficient data', - u'Fixed', - u'Duplicate'], - u'custom_keys': [], - u'date_created': u'1516348115', - u'date_modified': u'1516348115', - u'description': u'test project #1', - u'fullname': u'test', - u'id': 1, - u'milestones': {}, - u'name': u'test', - u'namespace': None, - u'parent': None, - u'priorities': {}, - u'tags': [], - u'url_path': u'test', - u'user': {u'fullname': u'PY C', u'name': u'pingou'}}, - u'status': u'Open', - u'title': u'Test PR', - u'uid': u'e8b68df8711648deac67c3afed15a798', - u'updated_on': u'1516348115', - u'user': {u'fullname': u'PY C', u'name': u'pingou'} + 'assignee': None, + 'branch': 'master', + 'branch_from': 'test', + 'cached_merge_status': 'unknown', + 'closed_at': None, + 'closed_by': None, + 'comments': [], + 'commit_start': '114f1b468a5f05e635fcb6394273f3f907386eab', + 'commit_stop': '114f1b468a5f05e635fcb6394273f3f907386eab', + 'date_created': '1516348115', + 'id': 1, + 'initial_comment': None, + 'last_updated': '1516348115', + 'project': {'access_groups': {'admin': [], + 'commit': [], + 'ticket':[]}, + 'access_users': {'admin': [], + 'commit': [], + 'owner': ['pingou'], + 'ticket': []}, + 'close_status': ['Invalid', + 'Insufficient data', + 'Fixed', + 'Duplicate'], + 'custom_keys': [], + 'date_created': '1516348115', + 'date_modified': '1516348115', + 'description': 'test project #1', + 'fullname': 'test', + 'id': 1, + 'milestones': {}, + 'name': 'test', + 'namespace': None, + 'parent': None, + 'priorities': {}, + 'tags': [], + 'url_path': 'test', + 'user': {'fullname': 'PY C', 'name': 'pingou'}}, + 'remote_git': None, + 'repo_from': {'access_groups': {'admin': [], + 'commit': [], + 'ticket': []}, + 'access_users': {'admin': [], + 'commit': [], + 'owner': ['pingou'], + 'ticket': []}, + 'close_status': ['Invalid', + 'Insufficient data', + 'Fixed', + 'Duplicate'], + 'custom_keys': [], + 'date_created': '1516348115', + 'date_modified': '1516348115', + 'description': 'test project #1', + 'fullname': 'test', + 'id': 1, + 'milestones': {}, + 'name': 'test', + 'namespace': None, + 'parent': None, + 'priorities': {}, + 'tags': [], + 'url_path': 'test', + 'user': {'fullname': 'PY C', 'name': 'pingou'}}, + 'status': 'Open', + 'title': 'Test PR', + 'uid': 'e8b68df8711648deac67c3afed15a798', + 'updated_on': '1516348115', + 'user': {'fullname': 'PY C', 'name': 'pingou'} } ) diff --git a/tests/test_pagure_flask_api_group.py b/tests/test_pagure_flask_api_group.py index 5a87a2e..53b5f75 100644 --- a/tests/test_pagure_flask_api_group.py +++ b/tests/test_pagure_flask_api_group.py @@ -81,14 +81,14 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): output = self.app.get('/api/0/groups') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(data['groups'], ['some_group', 'group1', 'rel-eng']) self.assertEqual(sorted(data.keys()), ['groups', 'total_groups']) self.assertEqual(data['total_groups'], 3) output = self.app.get('/api/0/groups?pattern=re') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(data['groups'], ['rel-eng']) self.assertEqual(sorted(data.keys()), ['groups', 'total_groups']) self.assertEqual(data['total_groups'], 1) @@ -116,7 +116,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): output = self.app.get('/api/0/groups?extended=1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( data, { @@ -165,7 +165,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): "group_type": "user", "name": "some_group" } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' self.assertDictEqual(data, exp) @@ -188,7 +188,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): "group_type": "user", "name": "some_group" } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' self.assertDictEqual(data, exp) @@ -235,7 +235,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): "name": "some_group" } self.maxDiff = None - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' self.assertDictEqual(data, exp) @@ -246,7 +246,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): """ output = self.app.get("/api/0/group/some_group3") self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(data['error'], 'Group not found') self.assertEqual(data['error_code'], 'ENOGROUP') @@ -337,7 +337,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): } ] } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' projects = [] for p in data['projects']: @@ -349,7 +349,10 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): output2 = self.app.get( '/api/0/group/some_group?projects=1&acl=admin', headers=headers) - self.assertEqual(output.data.split('\n'), output2.data.split('\n')) + self.assertListEqual( + output.get_data(as_text=True).split('\n'), + output2.get_data(as_text=True).split('\n') + ) def test_api_view_group_w_projects_and_acl_commit(self): """ @@ -431,7 +434,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): } ] } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' projects = [] for p in data['projects']: @@ -521,7 +524,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): } ] } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' projects = [] for p in data['projects']: @@ -565,7 +568,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): "name": "some_group", "projects": [] } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' self.assertDictEqual(data, exp) @@ -603,7 +606,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): "name": "some_group", "projects": [] } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' self.assertDictEqual(data, exp) @@ -639,7 +642,7 @@ class PagureFlaskApiGroupTests(tests.SimplePagureTest): "name": "rel-eng", "projects": [] } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1492020239' self.assertDictEqual(data, exp) diff --git a/tests/test_pagure_flask_api_issue.py b/tests/test_pagure_flask_api_issue.py index 228bae7..539a18f 100644 --- a/tests/test_pagure_flask_api_issue.py +++ b/tests/test_pagure_flask_api_issue.py @@ -8,6 +8,8 @@ """ +from __future__ import unicode_literals + __requires__ = ['SQLAlchemy >= 0.8'] import pkg_resources @@ -308,7 +310,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Valid token, wrong project output = self.app.post('/api/0/test2/new_issue', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -318,7 +320,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # No input output = self.app.post('/api/0/test/new_issue', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -339,7 +341,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/foo/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -352,7 +354,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -374,7 +376,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -394,7 +396,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -423,7 +425,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' @@ -445,7 +447,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -466,7 +468,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -487,7 +489,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -508,7 +510,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -528,7 +530,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -549,7 +551,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' exp = copy.deepcopy(FULL_ISSUE_LIST[1]) @@ -575,7 +577,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Valid token, invalid request - No input output = self.app.post('/api/0/test2/new_issue', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -591,7 +593,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Another project, still an invalid request - No input output = self.app.post('/api/0/test/new_issue', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -612,7 +614,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/foo/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -625,7 +627,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -647,7 +649,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -673,7 +675,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' @@ -695,7 +697,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -716,7 +718,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -737,7 +739,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -758,7 +760,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -778,7 +780,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -799,7 +801,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertDictEqual( @@ -819,7 +821,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/new_issue', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' exp = copy.deepcopy(FULL_ISSUE_LIST[1]) @@ -840,7 +842,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Invalid repo output = self.app.get('/api/0/foo/issues') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -852,7 +854,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues output = self.app.get('/api/0/test/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -893,7 +895,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access issues un-authenticated output = self.app.get('/api/0/test/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -937,7 +939,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access issues authenticated but wrong token output = self.app.get('/api/0/test/issues', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -967,7 +969,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access issues authenticated correctly output = self.app.get('/api/0/test/issues', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1015,7 +1017,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access issues authenticated but wrong token output = self.app.get('/api/0/test/issues', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1045,7 +1047,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access issues authenticated correctly output = self.app.get('/api/0/test/issues', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1071,7 +1073,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List closed issue output = self.app.get('/api/0/test/issues?status=Closed', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issues'][0]['date_created'] = '1431414800' data['issues'][0]['last_updated'] = '1431414800' self.assertDictEqual( @@ -1096,7 +1098,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List closed issue output = self.app.get('/api/0/test/issues?status=Invalid', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1119,7 +1121,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all issues output = self.app.get('/api/0/test/issues?status=All', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['last_updated'] = '1431414800' data['issues'][idx]['date_created'] = '1431414800' @@ -1154,7 +1156,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List issues in reverse order output = self.app.get('/api/0/test/issues?order=asc', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['last_updated'] = '1431414800' data['issues'][idx]['date_created'] = '1431414800' @@ -1217,7 +1219,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues output = self.app.get('/api/0/test/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1245,7 +1247,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all issues of the milestone v1.0 output = self.app.get('/api/0/test/issues?milestones=v1.0') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1315,7 +1317,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues output = self.app.get('/api/0/test/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1343,7 +1345,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all issues of the priority high (ie: 1) output = self.app.get('/api/0/test/issues?priority=high') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1368,7 +1370,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get('/api/0/test/issues?priority=1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1404,7 +1406,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Try getting issues with an invalid priority output = self.app.get('/api/0/test/issues?priority=foobar') self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1455,7 +1457,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues output = self.app.get('/api/0/test/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1483,7 +1485,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all issues with no milestone output = self.app.get('/api/0/test/issues?no_stones=1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1509,7 +1511,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all issues with a milestone output = self.app.get('/api/0/test/issues?no_stones=0') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1592,7 +1594,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Invalid repo output = self.app.get('/api/0/foo/issues') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1604,7 +1606,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues output = self.app.get('/api/0/test/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1633,7 +1635,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues from the start output = self.app.get('/api/0/test/issues?since=%s' % start) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1659,7 +1661,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues from the middle output = self.app.get('/api/0/test/issues?since=%s' % middle) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1685,7 +1687,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # List all opened issues at the end output = self.app.get('/api/0/test/issues?since=%s' % final) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['date_created'] = '1431414800' data['issues'][idx]['last_updated'] = '1431414800' @@ -1714,7 +1716,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get( '/api/0/test/issues?since=%s' % final, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for idx in range(len(data['issues'])): data['issues'][idx]['last_updated'] = '1431414800' data['issues'][idx]['date_created'] = '1431414800' @@ -1763,7 +1765,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Invalid repo output = self.app.get('/api/0/foo/issue/1') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1775,7 +1777,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Invalid issue for this repo output = self.app.get('/api/0/test2/issue/1') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1787,7 +1789,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Valid issue output = self.app.get('/api/0/test/issue/1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1431414800' data['last_updated'] = '1431414800' self.assertDictEqual( @@ -1835,7 +1837,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access private issue un-authenticated output = self.app.get('/api/0/test/issue/7') self.assertEqual(output.status_code, 403) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1849,7 +1851,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access private issue authenticated but non-existing token output = self.app.get('/api/0/test/issue/6', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -1872,7 +1874,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access private issue authenticated but wrong token output = self.app.get('/api/0/test/issue/7', headers=headers) self.assertEqual(output.status_code, 403) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1886,7 +1888,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access private issue authenticated correctly output = self.app.get('/api/0/test/issue/6', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1431414800' data['last_updated'] = '1431414800' self.assertDictEqual( @@ -1919,7 +1921,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Access private issue authenticated correctly using the issue's uid output = self.app.get('/api/0/test/issue/aaabbbccc', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1431414800' data['last_updated'] = '1431414800' self.assertDictEqual( @@ -1967,7 +1969,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Invalid project output = self.app.post('/api/0/foo/issue/1/milestone', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -1979,7 +1981,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Valid token, wrong project output = self.app.post('/api/0/test2/issue/1/milestone', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -1989,7 +1991,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # No issue output = self.app.post('/api/0/test/issue/1/milestone', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2025,7 +2027,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/milestone', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'No changes'} @@ -2044,7 +2046,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/milestone', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2066,7 +2068,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/milestone', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2085,7 +2087,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/milestone', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2108,7 +2110,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/milestone', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2125,7 +2127,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/milestone', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2146,7 +2148,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/foo/issue/1/milestone', data=data, headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2191,7 +2193,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} @@ -2213,7 +2215,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Issue and comment exists output = self.app.get('/api/0/test/issue/1/comment/1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1435821770' data["comment_date"] = "2015-07-02 09:22" data["avatar_url"] = "https://seccdn.libravatar.org/avatar/..." @@ -2239,7 +2241,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Issue and comment exists, using UID output = self.app.get('/api/0/test/issue/aaabbbccc1/comment/1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1435821770' data["comment_date"] = "2015-07-02 09:22" data["avatar_url"] = "https://seccdn.libravatar.org/avatar/..." @@ -2309,7 +2311,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} @@ -2333,7 +2335,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): headers = {'Authorization': 'token foo_token_2'} output = self.app.get('/api/0/test/issue/1/comment/1', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1435821770' data["comment_date"] = "2015-07-02 09:22" data["avatar_url"] = "https://seccdn.libravatar.org/avatar/..." @@ -2372,7 +2374,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Invalid project output = self.app.post('/api/0/foo/issue/1/assign', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2384,7 +2386,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Valid token, wrong project output = self.app.post('/api/0/test2/issue/1/assign', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2394,7 +2396,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # No input output = self.app.post('/api/0/test/issue/1/assign', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2436,7 +2438,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Issue assigned to pingou'} @@ -2446,7 +2448,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Assignee reset'} @@ -2461,7 +2463,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Nothing to change'} @@ -2475,7 +2477,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Issue assigned to pingou'} @@ -2486,7 +2488,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Assignee reset'} @@ -2497,7 +2499,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Issue assigned to pingou'} @@ -2568,7 +2570,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/foo/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2600,7 +2602,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/foo/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Issue assigned to pingou'} @@ -2645,7 +2647,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data={}, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Assignee reset'} @@ -2658,12 +2660,12 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/assign', data=data, headers=headers) self.assertEqual(output.status_code, 403) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'You are not allowed to view this issue', - u'error_code': u'EISSUENOTALLOWED' + 'error': 'You are not allowed to view this issue', + 'error_code': 'EISSUENOTALLOWED' } ) @@ -2698,7 +2700,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/foo/issue/1/subscribe', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2711,7 +2713,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test2/issue/1/subscribe', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2722,7 +2724,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/subscribe', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2759,7 +2761,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are no longer watching this issue'} @@ -2769,7 +2771,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are no longer watching this issue'} @@ -2787,7 +2789,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are now watching this issue'} @@ -2798,7 +2800,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are now watching this issue'} @@ -2815,7 +2817,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/subscribe', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'You are no longer watching this issue'} @@ -2840,7 +2842,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/foo/issue/1/custom/bugzilla', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2853,7 +2855,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test2/issue/1/custom/bugzilla', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2864,7 +2866,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/custom/bugzilla', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2891,7 +2893,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/custom/bugzilla', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2911,7 +2913,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/custom/bugzilla', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2933,7 +2935,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/custom/bugzilla', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2969,7 +2971,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.post( '/api/0/test/issue/1/custom/bugzilla', headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2987,7 +2989,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): '/api/0/test/issue/1/custom/bugzilla', headers=headers, data={'value': 'foobar'}) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -3007,7 +3009,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): '/api/0/test/issue/1/custom/bugzilla', headers=headers, data={'value': 'https://bugzilla.redhat.com/1234'}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -3030,7 +3032,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): '/api/0/test/issue/1/custom/bugzilla', headers=headers, data={'value': ''}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -3065,7 +3067,7 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get('/api/0/test/issues/history/stats') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(len(data), 1) self.assertEqual(len(data['stats']), 53) @@ -3096,10 +3098,10 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get('/api/0/user/pingou/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) args = { - u"assignee": True, - u"author": True, + "assignee": True, + "author": True, "milestones": [], "no_stones": None, "order": None, @@ -3121,10 +3123,10 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Restrict to a certain, fake milestone output = self.app.get('/api/0/user/pingou/issues?milestones=v1.0') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) args = { - u"assignee": True, - u"author": True, + "assignee": True, + "author": True, "milestones": ['v1.0'], "no_stones": None, "order": None, @@ -3146,10 +3148,10 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Restrict to a certain status output = self.app.get('/api/0/user/pingou/issues?status=closed') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) args = { - u"assignee": True, - u"author": True, + "assignee": True, + "author": True, "milestones": [], "no_stones": None, "order": None, @@ -3171,10 +3173,10 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): # Restrict to a certain status output = self.app.get('/api/0/user/pingou/issues?status=all') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) args = { - u"assignee": True, - u"author": True, + "assignee": True, + "author": True, "milestones": [], "no_stones": None, "order": None, @@ -3215,18 +3217,18 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get('/api/0/user/foo/issues') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) args = { - u"assignee": True, - u"author": True, - u"milestones": [], - u"no_stones": None, - u"order": None, - u"order_key": None, - u"page": 1, - u"since": None, - u"status": None, - u"tags": [], + "assignee": True, + "author": True, + "milestones": [], + "no_stones": None, + "order": None, + "order_key": None, + "page": 1, + "since": None, + "status": None, + "tags": [], } self.assertEqual(data['args'], args) @@ -3244,25 +3246,25 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get('/api/0/user/foo/issues?page=0') self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( data, { - u'error': u'Invalid page requested', - u'error_code': u'ENOCODE' + 'error': 'Invalid page requested', + 'error_code': 'ENOCODE' } ) output = self.app.get('/api/0/user/foo/issues?page=abc') self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( data, { - u'error': u'Invalid page requested', - u'error_code': u'ENOCODE' + 'error': 'Invalid page requested', + 'error_code': 'ENOCODE' } ) @@ -3273,18 +3275,18 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get('/api/0/user/foo/issues?assignee=0') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) args = { - u"assignee": False, - u"author": True, - u"milestones": [], - u"no_stones": None, - u"order": None, - u"order_key": None, - u"page": 1, - u"since": None, - u"status": None, - u"tags": [], + "assignee": False, + "author": True, + "milestones": [], + "no_stones": None, + "order": None, + "order_key": None, + "page": 1, + "since": None, + "status": None, + "tags": [], } self.assertEqual(data['args'], args) @@ -3302,10 +3304,10 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): output = self.app.get('/api/0/user/pingou/issues?author=0') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) args = { - u"assignee": True, - u"author": False, + "assignee": True, + "author": False, "milestones": [], "no_stones": None, "order": None, @@ -3326,4 +3328,6 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): if __name__ == '__main__': - unittest.main(verbosity=2) + SUITE = unittest.TestLoader().loadTestsFromTestCase( + PagureFlaskApiIssuetests) + unittest.TextTestRunner(verbosity=2).run(SUITE) diff --git a/tests/test_pagure_flask_api_issue_change_status.py b/tests/test_pagure_flask_api_issue_change_status.py index 353368b..e904857 100644 --- a/tests/test_pagure_flask_api_issue_change_status.py +++ b/tests/test_pagure_flask_api_issue_change_status.py @@ -107,7 +107,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): output = self.app.post( '/api/0/foobar/issue/1/status', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -124,7 +124,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): # Valid token, wrong project output = self.app.post('/api/0/test2/issue/1/status', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -137,7 +137,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): # No issue output = self.app.post('/api/0/test/issue/42/status', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -164,7 +164,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/status', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -192,7 +192,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/status', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'No changes'} @@ -217,7 +217,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/status', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, @@ -233,7 +233,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): output = self.app.post( '/api/0/foo/issue/1/status', data=data, headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -252,7 +252,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/status', data=data, headers=headers) self.assertEqual(output.status_code, 403) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, @@ -276,7 +276,7 @@ class PagureFlaskApiIssueChangeStatustests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/status', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, diff --git a/tests/test_pagure_flask_api_issue_comment.py b/tests/test_pagure_flask_api_issue_comment.py index e948368..d471db0 100644 --- a/tests/test_pagure_flask_api_issue_comment.py +++ b/tests/test_pagure_flask_api_issue_comment.py @@ -89,7 +89,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): # Invalid project output = self.app.post('/api/0/foo/issue/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -106,7 +106,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): # Valid token, wrong project output = self.app.post('/api/0/test2/issue/1/comment', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -118,7 +118,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): # Invalid issue output = self.app.post('/api/0/test/issue/10/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -144,7 +144,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -172,7 +172,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} @@ -200,7 +200,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/2/comment', data=data, headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -234,7 +234,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/2/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} @@ -248,7 +248,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): # Invalid project output = self.app.post('/api/0/foo/issue/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -265,7 +265,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): # Valid token, no such issue, project-less token so different failure output = self.app.post('/api/0/test2/issue/1/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -281,7 +281,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): # Invalid issue output = self.app.post('/api/0/test/issue/10/comment', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -307,7 +307,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -336,7 +336,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} @@ -364,7 +364,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/2/comment', data=data, headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -398,7 +398,7 @@ class PagureFlaskApiIssueCommenttests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/2/comment', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Comment added'} diff --git a/tests/test_pagure_flask_api_issue_create.py b/tests/test_pagure_flask_api_issue_create.py index 855bdb7..1b9b0c4 100644 --- a/tests/test_pagure_flask_api_issue_create.py +++ b/tests/test_pagure_flask_api_issue_create.py @@ -8,6 +8,7 @@ """ +from __future__ import unicode_literals import datetime import unittest @@ -77,7 +78,7 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): # Create an issue on /test/ where pingou is the main admin output = self.app.post('/api/0/test/new_issue', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( pagure.api.APIERROR.EINVALIDREQ.name, data['error_code']) self.assertEqual( @@ -85,8 +86,8 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): self.assertEqual( data['errors'], { - u'issue_content': [u'This field is required.'], - u'title': [u'This field is required.'] + 'issue_content': ['This field is required.'], + 'title': ['This field is required.'] } ) @@ -109,7 +110,7 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( pagure.api.APIERROR.EINVALIDREQ.name, data['error_code']) self.assertEqual( @@ -117,7 +118,7 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): self.assertEqual( data['errors'], { - u'issue_content': [u'This field is required.'] + 'issue_content': ['This field is required.'] } ) @@ -141,7 +142,7 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertEqual( @@ -195,7 +196,7 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertEqual( @@ -249,7 +250,7 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['issue']['date_created'] = '1431414800' data['issue']['last_updated'] = '1431414800' self.assertEqual( @@ -303,7 +304,7 @@ class PagureFlaskApiIssueCreatetests(tests.Modeltests): headers=headers, data=data) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual( diff --git a/tests/test_pagure_flask_api_issue_custom_fields.py b/tests/test_pagure_flask_api_issue_custom_fields.py index d15ccc5..d038166 100644 --- a/tests/test_pagure_flask_api_issue_custom_fields.py +++ b/tests/test_pagure_flask_api_issue_custom_fields.py @@ -59,7 +59,7 @@ class PagureFlaskApiCustomFieldIssuetests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/custom', headers=headers, data=payload) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -79,7 +79,7 @@ class PagureFlaskApiCustomFieldIssuetests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/custom', headers=headers, data=payload) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -110,15 +110,15 @@ class PagureFlaskApiCustomFieldIssuetests(tests.Modeltests): output = self.app.post( '/api/0/test/issue/1/custom', headers=headers, data=payload) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data["messages"].sort() + data = json.loads(output.get_data(as_text=True)) + data["messages"].sort(key=lambda d: list(d.keys())[0]) self.assertDictEqual( data, { - "messages": sorted([ + "messages": [ {"bugzilla": "No changes"}, {"upstream": "Custom field upstream adjusted to True"}, - ]) + ] } ) @@ -134,18 +134,18 @@ class PagureFlaskApiCustomFieldIssuetests(tests.Modeltests): '/api/0/test/issue/1/custom', headers=headers, data=payload) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data["messages"].sort() + data = json.loads(output.get_data(as_text=True)) + data["messages"].sort(key=lambda d: list(d.keys())[0]) self.assertDictEqual( data, { - "messages": sorted([ + "messages": [ {"bugzilla": "Custom field bugzilla adjusted to " "https://bugzilla.redhat.com/1234"}, {"reviewstatus": "Custom field reviewstatus adjusted to ack"}, {"upstream": "Custom field upstream adjusted to False (was: True)"}, - ]) + ] } ) @@ -160,17 +160,17 @@ class PagureFlaskApiCustomFieldIssuetests(tests.Modeltests): '/api/0/test/issue/1/custom', headers=headers, data=payload) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data["messages"].sort() + data = json.loads(output.get_data(as_text=True)) + data["messages"].sort(key=lambda d: list(d.keys())[0]) self.assertDictEqual( data, { - "messages": sorted([ + "messages": [ {"bugzilla": "Custom field bugzilla reset " "(from https://bugzilla.redhat.com/1234)"}, {"reviewstatus": "Custom field reviewstatus reset (from ack)"}, {"upstream": "Custom field upstream reset (from False)"}, - ]) + ] } ) diff --git a/tests/test_pagure_flask_api_pr_flag.py b/tests/test_pagure_flask_api_pr_flag.py index 3f044b4..9aed6a2 100644 --- a/tests/test_pagure_flask_api_pr_flag.py +++ b/tests/test_pagure_flask_api_pr_flag.py @@ -8,6 +8,8 @@ """ +from __future__ import unicode_literals + import unittest import sys import os @@ -72,7 +74,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/flag', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -89,7 +91,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/flag', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.name, data['error_code']) self.assertEqual(pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -102,7 +104,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/10/flag', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -119,16 +121,16 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Invalid or incomplete input submitted', - u'error_code': u'EINVALIDREQ', - u'errors': { - u'comment': [u'This field is required.'], - u'url': [u'This field is required.'], - u'username': [u'This field is required.'] + 'error': 'Invalid or incomplete input submitted', + 'error_code': 'EINVALIDREQ', + 'errors': { + 'comment': ['This field is required.'], + 'url': ['This field is required.'], + 'username': ['This field is required.'] } } ) @@ -148,7 +150,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -188,29 +190,29 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' pr_uid = data['flag']['pull_request_uid'] - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests running', - u'date_created': u'1510742565', - u'percent': None, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'pending', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests running', + 'date_created': '1510742565', + 'percent': None, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'pending', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag added', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag added', + 'uid': 'jenkins_build_pagure_100+seed' } ) @@ -224,15 +226,15 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): # Check the notification sent mock_email.assert_called_once_with( - u'\nJenkins flagged the pull-request `test pull-request` ' - u'as pending: Tests running\n\n' - u'https://pagure.org/test/pull-request/1\n', - u'PR #1 - Jenkins: pending', - u'bar@pingou.com', - in_reply_to=u'test-pull-request-' + pr_uid, - mail_id=u'test-pull-request-' + pr_uid + '-1', - project_name=u'test', - user_from=u'Jenkins' + '\nJenkins flagged the pull-request `test pull-request` ' + 'as pending: Tests running\n\n' + 'https://pagure.org/test/pull-request/1\n', + 'PR #1 - Jenkins: pending', + 'bar@pingou.com', + in_reply_to='test-pull-request-' + pr_uid, + mail_id='test-pull-request-' + pr_uid + '-1', + project_name='test', + user_from='Jenkins' ) def test_updating_flag(self): @@ -250,28 +252,28 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests running', - u'date_created': u'1510742565', - u'percent': None, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'pending', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests running', + 'date_created': '1510742565', + 'percent': None, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'pending', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag added', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag added', + 'uid': 'jenkins_build_pagure_100+seed' } ) @@ -295,28 +297,28 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests passed', - u'date_created': u'1510742565', - u'percent': 100, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'success', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests passed', + 'date_created': '1510742565', + 'percent': 100, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'success', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag updated', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag updated', + 'uid': 'jenkins_build_pagure_100+seed' } ) @@ -345,28 +347,28 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests passed', - u'date_created': u'1510742565', - u'percent': 100, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'success', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests passed', + 'date_created': '1510742565', + 'percent': 100, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'success', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag added', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag added', + 'uid': 'jenkins_build_pagure_100+seed' } ) @@ -388,31 +390,31 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertNotEqual( data['uid'], 'jenkins_build_pagure_100+seed') data['uid'] = 'jenkins_build_pagure_100+seed' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests running again', - u'date_created': u'1510742565', - u'percent': None, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'pending', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests running again', + 'date_created': '1510742565', + 'percent': None, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'pending', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag added', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag added', + 'uid': 'jenkins_build_pagure_100+seed' } ) @@ -453,7 +455,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=send_data, headers=headers) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(output.status_code, 200) self.assertEqual(data['flag']['status'], 'pend!') @@ -461,7 +463,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): send_data['percent'] = 50 output = self.app.post( '/api/0/test/pull-request/1/flag', data=send_data, headers=headers) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(output.status_code, 200) self.assertEqual(data['flag']['status'], 'succeed!') @@ -469,7 +471,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): send_data['percent'] = 0 output = self.app.post( '/api/0/test/pull-request/1/flag', data=send_data, headers=headers) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(output.status_code, 200) self.assertEqual(data['flag']['status'], 'fail!') @@ -477,7 +479,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): send_data['status'] = 'what?' output = self.app.post( '/api/0/test/pull-request/1/flag', data=send_data, headers=headers) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(output.status_code, 200) self.assertEqual(data['flag']['status'], 'what?') @@ -485,7 +487,7 @@ class PagureFlaskApiPRFlagtests(tests.Modeltests): send_data['status'] = 'nooo.....' output = self.app.post( '/api/0/test/pull-request/1/flag', data=send_data, headers=headers) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(output.status_code, 400) self.assertDictEqual( data, @@ -546,7 +548,7 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/foo/pull-request/1/flag', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -562,7 +564,7 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/test2/pull-request/1/flag', headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -579,16 +581,16 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { - u'error': u'Invalid or incomplete input submitted', - u'error_code': u'EINVALIDREQ', - u'errors': { - u'comment': [u'This field is required.'], - u'url': [u'This field is required.'], - u'username': [u'This field is required.'] + 'error': 'Invalid or incomplete input submitted', + 'error_code': 'EINVALIDREQ', + 'errors': { + 'comment': ['This field is required.'], + 'url': ['This field is required.'], + 'username': ['This field is required.'] } } ) @@ -609,7 +611,7 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -642,7 +644,7 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -678,28 +680,28 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests failed', - u'date_created': u'1510742565', - u'percent': 0, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'failure', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests failed', + 'date_created': '1510742565', + 'percent': 0, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'failure', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag added', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag added', + 'uid': 'jenkins_build_pagure_100+seed' } ) @@ -731,28 +733,28 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests failed', - u'date_created': u'1510742565', - u'percent': None, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'failure', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests failed', + 'date_created': '1510742565', + 'percent': None, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'failure', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag added', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag added', + 'uid': 'jenkins_build_pagure_100+seed' } ) @@ -777,28 +779,28 @@ class PagureFlaskApiPRFlagUserTokentests(tests.Modeltests): output = self.app.post( '/api/0/test/pull-request/1/flag', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['pull_request_uid'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['pull_request_uid'] = '62b49f00d489452994de5010565fab81' self.assertDictEqual( data, { - u'flag': { - u'comment': u'Tests passed', - u'date_created': u'1510742565', - u'percent': 100, - u'pull_request_uid': u'62b49f00d489452994de5010565fab81', - u'status': u'success', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou' + 'flag': { + 'comment': 'Tests passed', + 'date_created': '1510742565', + 'percent': 100, + 'pull_request_uid': '62b49f00d489452994de5010565fab81', + 'status': 'success', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou' }, - u'username': u'Jenkins'}, - u'message': u'Flag updated', - u'uid': u'jenkins_build_pagure_100+seed' + 'username': 'Jenkins'}, + 'message': 'Flag updated', + 'uid': 'jenkins_build_pagure_100+seed' } ) diff --git a/tests/test_pagure_flask_api_project.py b/tests/test_pagure_flask_api_project.py index 52ffa84..875b490 100644 --- a/tests/test_pagure_flask_api_project.py +++ b/tests/test_pagure_flask_api_project.py @@ -8,6 +8,8 @@ """ +from __future__ import unicode_literals + __requires__ = ['SQLAlchemy >= 0.8'] import pkg_resources @@ -94,7 +96,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Check tags output = self.app.get('/api/0/test/git/tags') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'tags': ['0.0.1'], 'total_tags': 1} @@ -103,13 +105,13 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Check tags with commits output = self.app.get('/api/0/test/git/tags?with_commits=True') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['tags']['0.0.1'] = 'bb8fa2aa199da08d6085e1c9badc3d83d188d38c' self.assertDictEqual( data, { - u'tags': {u'0.0.1': u'bb8fa2aa199da08d6085e1c9badc3d83d188d38c'}, - u'total_tags': 1} + 'tags': {'0.0.1': 'bb8fa2aa199da08d6085e1c9badc3d83d188d38c'}, + 'total_tags': 1} ) shutil.rmtree(newpath) @@ -136,7 +138,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Verify the API data self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -157,7 +159,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Check that no branches show up on the API output = self.app.get('/api/0/test/git/branches') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -187,7 +189,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): }, 'total_urls': 2 } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual(data, expected_rv) def test_api_git_urls_no_project(self): @@ -200,7 +202,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): 'error': 'Project not found', 'error_code': 'ENOPROJECT' } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual(data, expected_rv) @patch.dict('pagure.config.config', {'PRIVATE_PROJECTS': True}) @@ -227,7 +229,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): }, 'total_urls': 2 } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual(data, expected_rv) @patch.dict('pagure.config.config', {'PRIVATE_PROJECTS': True}) @@ -247,7 +249,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): 'error': 'Project not found', 'error_code': 'ENOPROJECT' } - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual(data, expected_rv) def test_api_projects_pattern(self): @@ -256,7 +258,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?pattern=test') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['projects'][0]['date_created'] = "1436527638" data['projects'][0]['date_modified'] = "1436527638" expected_data = { @@ -319,7 +321,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?pattern=te*&short=1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_data = { "args": { "fork": None, @@ -376,7 +378,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Check the API output = self.app.get('/api/0/projects?tags=inf') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -395,7 +397,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): ) output = self.app.get('/api/0/projects?tags=infra') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['projects'][0]['date_created'] = "1436527638" data['projects'][0]['date_modified'] = "1436527638" expected_data = { @@ -448,7 +450,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?owner=pingou') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['projects'][0]['date_created'] = "1436527638" data['projects'][0]['date_modified'] = "1436527638" data['projects'][1]['date_created'] = "1436527638" @@ -581,7 +583,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?username=pingou') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['projects'][0]['date_created'] = "1436527638" data['projects'][0]['date_modified'] = "1436527638" data['projects'][1]['date_created'] = "1436527638" @@ -711,7 +713,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?username=pingou&tags=infra') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['projects'][0]['date_created'] = "1436527638" data['projects'][0]['date_modified'] = "1436527638" expected_data = { @@ -764,7 +766,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?namespace=somenamespace') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['projects'][0]['date_created'] = "1436527638" data['projects'][0]['date_modified'] = "1436527638" expected_data = { @@ -841,7 +843,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Non-existing project output = self.app.get('/api/0/random') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'error_code': 'ENOPROJECT', 'error': 'Project not found'} @@ -850,7 +852,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Existing project output = self.app.get('/api/0/test') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = "1436527638" data['date_modified'] = "1436527638" expected_data ={ @@ -939,7 +941,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Existing project output = self.app.get('/api/0/test?expand_group=1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = "1436527638" data['date_modified'] = "1436527638" expected_data ={ @@ -1007,7 +1009,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Existing project output = self.app.get('/api/0/test?expand_group=0') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = "1436527638" data['date_modified'] = "1436527638" expected_data ={ @@ -1053,7 +1055,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?page=1') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for i in range(3): data['projects'][i]['date_created'] = "1436527638" data['projects'][i]['date_modified'] = "1436527638" @@ -1203,7 +1205,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?page=2&per_page=2') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['projects'][0]['date_created'] = "1436527638" data['projects'][0]['date_modified'] = "1436527638" expected_data = { @@ -1301,7 +1303,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?page=1&per_page=0') self.assertEqual(output.status_code, 400) - error = json.loads(output.data) + error = json.loads(output.get_data(as_text=True)) self.assertEqual( error['error'], 'The per_page value must be between 1 and 100') @@ -1312,7 +1314,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?page=1&per_page=101') self.assertEqual(output.status_code, 400) - error = json.loads(output.data) + error = json.loads(output.get_data(as_text=True)) self.assertEqual( error['error'], 'The per_page value must be between 1 and 100') @@ -1331,7 +1333,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.get('/api/0/projects?page=99999') self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertURLEqual( data["pagination"].pop("first"), "http://localhost/api/0/projects?per_page=20&page=1", @@ -1384,7 +1386,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test', headers=headers, data={'main_admin': 'foo'}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1496338274' data['date_modified'] = '1496338274' expected_output = { @@ -1447,7 +1449,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test', headers=headers, data={'main_admin': 'foo', 'retain_access': True}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1496338274' data['date_modified'] = '1496338274' expected_output = { @@ -1521,7 +1523,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test', headers=headers, data={'main_admin': 'foo', 'retain_access': True}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1496338274' data['date_modified'] = '1496338274' expected_output = { @@ -1586,7 +1588,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test', headers=headers, data=json.dumps({'main_admin': 'foo'})) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1496338274' data['date_modified'] = '1496338274' expected_output = { @@ -1650,7 +1652,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test', headers=headers, data={'main_admin': 'foo'}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) data['date_created'] = '1496338274' data['date_modified'] = '1496338274' expected_output = { @@ -1726,7 +1728,8 @@ class PagureFlaskApiProjecttests(tests.Modeltests): 'project'), 'error_code': 'ENOTMAINADMIN' } - self.assertEqual(json.loads(output.data), expected_error) + self.assertEqual( + json.loads(output.get_data(as_text=True)), expected_error) def test_api_modify_project_not_admin(self): """ Test the api_modify_project method of the flask api when the @@ -1748,7 +1751,8 @@ class PagureFlaskApiProjecttests(tests.Modeltests): 'error': 'You are not allowed to modify this project', 'error_code': 'EMODIFYPROJECTNOTALLOWED' } - self.assertEqual(json.loads(output.data), expected_error) + self.assertEqual( + json.loads(output.get_data(as_text=True)), expected_error) def test_api_modify_project_invalid_request(self): """ Test the api_modify_project method of the flask api when the @@ -1770,7 +1774,8 @@ class PagureFlaskApiProjecttests(tests.Modeltests): 'error': 'Invalid or incomplete input submitted', 'error_code': 'EINVALIDREQ' } - self.assertEqual(json.loads(output.data), expected_error) + self.assertEqual( + json.loads(output.get_data(as_text=True)), expected_error) def test_api_modify_project_invalid_keys(self): """ Test the api_modify_project method of the flask api when the @@ -1792,7 +1797,8 @@ class PagureFlaskApiProjecttests(tests.Modeltests): 'error': 'Invalid or incomplete input submitted', 'error_code': 'EINVALIDREQ' } - self.assertEqual(json.loads(output.data), expected_error) + self.assertEqual( + json.loads(output.get_data(as_text=True)), expected_error) def test_api_modify_project_invalid_new_main_admin(self): """ Test the api_modify_project method of the flask api when the @@ -1815,7 +1821,8 @@ class PagureFlaskApiProjecttests(tests.Modeltests): 'error': 'No such user found', 'error_code': 'ENOUSER' } - self.assertEqual(json.loads(output.data), expected_error) + self.assertEqual( + json.loads(output.get_data(as_text=True)), expected_error) def test_api_project_watchers(self): """ Test the api_project_watchers method of the flask api. """ @@ -1831,14 +1838,14 @@ class PagureFlaskApiProjecttests(tests.Modeltests): ] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) user = tests.FakeUser(username='pingou') with tests.user_set(self.app.application, user): # Non-existing project output = self.app.get('/api/0/random/watchers') self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'error_code': 'ENOPROJECT', 'error': 'Project not found'} @@ -1855,7 +1862,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): ] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) project = pagure.lib.get_authorized_project(self.session, 'test') @@ -1874,7 +1881,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): ] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) # The owner is watching issues explicitly pagure.lib.update_watch_status( @@ -1890,7 +1897,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): ] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) # The owner is watching commits explicitly pagure.lib.update_watch_status( @@ -1906,7 +1913,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): ] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) # The owner is watching commits explicitly and foo is watching # issues implicitly @@ -1929,7 +1936,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): "pingou": ["commits"] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) # The owner and foo are watching issues implicitly pagure.lib.update_watch_status( @@ -1945,7 +1952,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): "pingou": ["issues"] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) # The owner and foo through group membership are watching issues # implicitly @@ -1995,7 +2002,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): "pingou": ["issues"] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) # The owner is watching issues implicitly and foo will be watching # commits explicitly but is in a group with commit access @@ -2015,7 +2022,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): "pingou": ["issues"] } } - self.assertDictEqual(json.loads(output.data), expected_data) + self.assertDictEqual(json.loads(output.get_data(as_text=True)), expected_data) def test_api_new_project(self): """ Test the api_new_project method of the flask api. """ @@ -2030,7 +2037,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Invalid token output = self.app.post('/api/0/new', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2042,7 +2049,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # No input output = self.app.post('/api/0/new', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2063,7 +2070,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2082,7 +2089,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2100,7 +2107,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Project "test_42" created'} @@ -2128,7 +2135,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Project "pingou/test" created'} @@ -2146,7 +2153,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Invalid token output = self.app.post('/api/0/new', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2158,7 +2165,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # No input output = self.app.post('/api/0/new', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2179,7 +2186,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2198,7 +2205,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2216,7 +2223,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Project "test_42" created'} @@ -2234,7 +2241,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2258,7 +2265,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Project "rpms/test_42" created'} @@ -2284,7 +2291,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Project "pingou/testproject" created'} @@ -2302,7 +2309,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/new/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, {'message': 'Project "testns/testproject2" created'} @@ -2322,7 +2329,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Invalid token output = self.app.post('/api/0/fork', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2334,7 +2341,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # No input output = self.app.post('/api/0/fork', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2352,7 +2359,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2370,7 +2377,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2386,7 +2393,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2404,7 +2411,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2422,7 +2429,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2445,7 +2452,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # Invalid token output = self.app.post('/api/0/fork', headers=headers) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2457,7 +2464,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): # No input output = self.app.post('/api/0/fork', headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2475,7 +2482,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2493,7 +2500,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2509,7 +2516,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2527,7 +2534,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2545,7 +2552,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post( '/api/0/fork/', data=data, headers=headers) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, { @@ -2568,7 +2575,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test/git/generateacls', headers=headers, data={'wait': False}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'message': 'Project ACL generation queued', 'taskid': 'abc-1234' @@ -2592,7 +2599,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test/git/generateacls', headers=headers, data=json.dumps({'wait': False})) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'message': 'Project ACL generation queued', 'taskid': 'abc-1234' @@ -2620,7 +2627,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test/git/generateacls', headers=headers, data={'wait': True}) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'message': 'Project ACLs generated', } @@ -2644,7 +2651,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): '/api/0/test12345123/git/generateacls', headers=headers, data={'wait': False}) self.assertEqual(output.status_code, 404) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'error_code': 'ENOPROJECT', 'error': 'Project not found' @@ -2665,7 +2672,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post('/api/0/test/git/branch', headers=headers, data=args) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'message': 'Project branch was created', } @@ -2690,7 +2697,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post('/api/0/test/git/branch', headers=headers, data=json.dumps(args)) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'message': 'Project branch was created', } @@ -2717,7 +2724,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post('/api/0/test/git/branch', headers=headers, data=args) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'message': 'Project branch was created', } @@ -2739,7 +2746,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post('/api/0/test/git/branch', headers=headers, data=args) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'error': 'The branch "master" already exists', 'error_code': 'ENOCODE' @@ -2763,7 +2770,7 @@ class PagureFlaskApiProjecttests(tests.Modeltests): output = self.app.post('/api/0/test/git/branch', headers=headers, data=args) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { 'message': 'Project branch was created', } @@ -2804,7 +2811,7 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { "error": "Invalid or incomplete input submitted", "error_code": "EINVALIDREQ", @@ -2833,7 +2840,7 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { "error": "Invalid or incomplete input submitted", "error_code": "EINVALIDREQ", @@ -2862,7 +2869,7 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { "error": "Invalid or incomplete input submitted", "error_code": "EINVALIDREQ", @@ -2891,7 +2898,7 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) expected_output = { "error": "Invalid or incomplete input submitted", "error_code": "EINVALIDREQ", @@ -2920,7 +2927,7 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 401) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(sorted(data.keys()), ['error', 'error_code']) self.assertEqual( pagure.api.APIERROR.EINVALIDTOK.value, data['error']) @@ -2944,13 +2951,13 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( data, { - u'errors': {u'status': [u'Not a valid choice']}, - u'error_code': u'EINVALIDREQ', - u'error': u'Invalid or incomplete input submitted' + 'errors': {'status': ['Not a valid choice']}, + 'error_code': 'EINVALIDREQ', + 'error': 'Invalid or incomplete input submitted' } ) @@ -2972,26 +2979,26 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) - data['flag']['date_created'] = u'1510742565' - data['flag']['commit_hash'] = u'62b49f00d489452994de5010565fab81' + data = json.loads(output.get_data(as_text=True)) + data['flag']['date_created'] = '1510742565' + data['flag']['commit_hash'] = '62b49f00d489452994de5010565fab81' expected_output = { - u'flag': { - u'comment': u'Tests passed', - u'commit_hash': u'62b49f00d489452994de5010565fab81', - u'date_created': u'1510742565', - u'percent': 100, - u'status': 'success', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou'}, - u'username': u'Jenkins' + 'flag': { + 'comment': 'Tests passed', + 'commit_hash': '62b49f00d489452994de5010565fab81', + 'date_created': '1510742565', + 'percent': 100, + 'status': 'success', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou'}, + 'username': 'Jenkins' }, - u'message': u'Flag added', - u'uid': u'jenkins_build_pagure_100+seed' + 'message': 'Flag added', + 'uid': 'jenkins_build_pagure_100+seed' } self.assertEqual(data, expected_output) @@ -3017,30 +3024,30 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertNotEqual( data['uid'], - u'jenkins_build_pagure_100+seed' + 'jenkins_build_pagure_100+seed' ) - data['flag']['date_created'] = u'1510742565' + data['flag']['date_created'] = '1510742565' data['uid'] = 'b1de8f80defd4a81afe2e09f39678087' expected_output = { - u'flag': { - u'comment': u'Tests passed', - u'commit_hash': commit.oid.hex, - u'date_created': u'1510742565', - u'percent': 100, - u'status': 'success', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou'}, - u'username': u'Jenkins' + 'flag': { + 'comment': 'Tests passed', + 'commit_hash': commit.oid.hex, + 'date_created': '1510742565', + 'percent': 100, + 'status': 'success', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou'}, + 'username': 'Jenkins' }, - u'message': u'Flag added', - u'uid': u'b1de8f80defd4a81afe2e09f39678087' + 'message': 'Flag added', + 'uid': 'b1de8f80defd4a81afe2e09f39678087' } self.assertEqual(data, expected_output) @@ -3073,44 +3080,44 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertNotEqual( data['uid'], - u'jenkins_build_pagure_100+seed' + 'jenkins_build_pagure_100+seed' ) - data['flag']['date_created'] = u'1510742565' + data['flag']['date_created'] = '1510742565' data['uid'] = 'b1de8f80defd4a81afe2e09f39678087' expected_output = { - u'flag': { - u'comment': u'Tests passed', - u'commit_hash': commit.oid.hex, - u'date_created': u'1510742565', - u'percent': 100, - u'status': 'success', - u'url': u'http://jenkins.cloud.fedoraproject.org/', - u'user': { - u'default_email': u'bar@pingou.com', - u'emails': [u'bar@pingou.com', u'foo@pingou.com'], - u'fullname': u'PY C', - u'name': u'pingou'}, - u'username': u'Jenkins' + 'flag': { + 'comment': 'Tests passed', + 'commit_hash': commit.oid.hex, + 'date_created': '1510742565', + 'percent': 100, + 'status': 'success', + 'url': 'http://jenkins.cloud.fedoraproject.org/', + 'user': { + 'default_email': 'bar@pingou.com', + 'emails': ['bar@pingou.com', 'foo@pingou.com'], + 'fullname': 'PY C', + 'name': 'pingou'}, + 'username': 'Jenkins' }, - u'message': u'Flag added', - u'uid': u'b1de8f80defd4a81afe2e09f39678087' + 'message': 'Flag added', + 'uid': 'b1de8f80defd4a81afe2e09f39678087' } self.assertEqual(data, expected_output) mock_email.assert_called_once_with( - u'\nJenkins flagged the commit ' - u'`' + commit.oid.hex + u'` as success: ' - u'Tests passed\n\n' - u'https://pagure.org/test/c/' + commit.oid.hex + u'\n', - u'Coommit #' + commit.oid.hex + u' - Jenkins: success', - u'bar@pingou.com', - in_reply_to=u'test-project-1', - mail_id=u'test-commit-1-1', - project_name=u'test', - user_from=u'Jenkins' + '\nJenkins flagged the commit ' + '`' + commit.oid.hex + '` as success: ' + 'Tests passed\n\n' + 'https://pagure.org/test/c/' + commit.oid.hex + '\n', + 'Coommit #' + commit.oid.hex + ' - Jenkins: success', + 'bar@pingou.com', + in_reply_to='test-project-1', + mail_id='test-commit-1-1', + project_name='test', + user_from='Jenkins' ) @patch.dict('pagure.config.config', @@ -3144,7 +3151,7 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=send_data) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual(data['flag']['status'], 'succeed!') # Try invalid flag status @@ -3153,13 +3160,13 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): '/api/0/test/c/%s/flag' % commit.oid.hex, headers=headers, data=send_data) self.assertEqual(output.status_code, 400) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( data, { - u'errors': {u'status': [u'Not a valid choice']}, - u'error_code': u'EINVALIDREQ', - u'error': u'Invalid or incomplete input submitted' + 'errors': {'status': ['Not a valid choice']}, + 'error_code': 'EINVALIDREQ', + 'error': 'Invalid or incomplete input submitted' } ) @@ -3171,7 +3178,7 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): # test with no flags output = self.app.get('/api/0/test/c/%s/flag' % commit.oid.hex) - self.assertEqual(json.loads(output.data), {'total_flags': 0, 'flags': []}) + self.assertEqual(json.loads(output.get_data(as_text=True)), {'total_flags': 0, 'flags': []}) self.assertEqual(output.status_code, 200) # add some flags and retrieve them @@ -3205,41 +3212,41 @@ class PagureFlaskApiProjectFlagtests(tests.Modeltests): self.session.commit() output = self.app.get('/api/0/test/c/%s/flag' % commit.oid.hex) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) for f in data['flags']: - f['date_created'] = u'1510742565' - f['commit_hash'] = u'62b49f00d489452994de5010565fab81' + f['date_created'] = '1510742565' + f['commit_hash'] = '62b49f00d489452994de5010565fab81' expected_output = { - u"flags": [ + "flags": [ { - u"comment": u"Build is running", - u"commit_hash": u"62b49f00d489452994de5010565fab81", - u"date_created": u"1510742565", - u"percent": None, - u"status": u"pending", - u"url": u"https://koji.fp.o/koji...", - u"user": { - u"fullname": u"foo bar", - u"name": u"foo" + "comment": "Build is running", + "commit_hash": "62b49f00d489452994de5010565fab81", + "date_created": "1510742565", + "percent": None, + "status": "pending", + "url": "https://koji.fp.o/koji...", + "user": { + "fullname": "foo bar", + "name": "foo" }, - u"username": u"simple-koji-ci" + "username": "simple-koji-ci" }, { - u"comment": u"Build succeeded", - u"commit_hash": u"62b49f00d489452994de5010565fab81", - u"date_created": u"1510742565", - u"percent": None, - u"status": u"success", - u"url": u"https://koji.fp.o/koji...", - u"user": { - u"fullname": u"foo bar", - u"name": u"foo" + "comment": "Build succeeded", + "commit_hash": "62b49f00d489452994de5010565fab81", + "date_created": "1510742565", + "percent": None, + "status": "success", + "url": "https://koji.fp.o/koji...", + "user": { + "fullname": "foo bar", + "name": "foo" }, - u"username": u"complex-koji-ci" + "username": "complex-koji-ci" } ], - u"total_flags": 2 + "total_flags": 2 } self.assertEqual(data, expected_output) diff --git a/tests/test_pagure_flask_api_ui_private_repo.py b/tests/test_pagure_flask_api_ui_private_repo.py index aa7a604..e4f9ee2 100644 --- a/tests/test_pagure_flask_api_ui_private_repo.py +++ b/tests/test_pagure_flask_api_ui_private_repo.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- +from __future__ import unicode_literals + __requires__ = ['SQLAlchemy >= 0.8'] import pkg_resources @@ -12,7 +14,7 @@ import os import json import pygit2 -from mock import patch +from mock import patch, MagicMock sys.path.insert(0, os.path.join(os.path.dirname( os.path.abspath(__file__)), '..')) @@ -379,7 +381,8 @@ class PagurePrivateRepotest(tests.Modeltests): self.assertEqual(output.status_code, 200) self.assertIn( '
No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.get_data(as_text=True).count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.get_data(as_text=True).count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.get_data(as_text=True).count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.get_data(as_text=True).count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.get_data(as_text=True).count('Documentation not found
' in output.data) + 'Documentation not found
' in output.get_data(as_text=True)) output = self.app.get('/test', follow_redirects=True) self.assertEqual(output.status_code, 404) self.assertTrue( - 'Documentation not found
' in output.data) + 'Documentation not found
' in output.get_data(as_text=True)) def test_view_docs_project_no_docs(self): """ Test the view_docs endpoint with a project that disabled the @@ -160,7 +162,7 @@ class PagureFlaskDocstests(tests.SimplePagureTest): 'No content found in the repository, you may want to read ' 'the Using the doc repository of your project ' - 'documentation.
', output.data) + 'documentation.', output.get_data(as_text=True)) def test_view_docs(self): """ Test the view_docs endpoint. """ @@ -180,23 +182,23 @@ class PagureFlaskDocstests(tests.SimplePagureTest): output = self.app.get('/test/sources') self.assertEqual(output.status_code, 200) - self.assertEqual('foo\n bar', output.data) + self.assertEqual('
foo\n bar', output.get_data(as_text=True)) output = self.app.get('/test/folder1/folder2') self.assertEqual(output.status_code, 200) self.assertTrue( '
row1\nrow2\nrow3', output.data) + self.assertEqual('
row1\nrow2\nrow3', output.get_data(as_text=True)) output = self.app.get('/test/folder1') self.assertEqual(output.status_code, 200) self.assertTrue( '
You have no forks
', - output.data) + output_text) self.assertIn( 'No project in watch list
', - output.data) + output_text) tests.create_projects(self.session) output = self.app.get('/') + output_text = output.get_data(as_text=True) self.assertIn( 'My Projects 3', - output.data) + output_text) self.assertIn( 'My Forks 0', - output.data) + output_text) self.assertIn( 'My Watch List 3', - output.data) + output_text) def test_view_users(self): """ Test the view_users endpoint. """ output = self.app.get('/users/?page=abc') self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'This repo is brand new!
', output.data) + 'This repo is brand new!
', + output_text) self.assertIn( - u'This repo is brand new!
', output.data) + 'This repo is brand new!
', + output_text) self.assertIn( - u'Prõjéctö #1
-Мой первый суперский репозиторий
-This repo is brand new!
', output.data) + 'This repo is brand new!
', + output_text) self.assertIn( - u'This repo is brand new!
', output.data) + 'This repo is brand new!
', + output_text) self.assertIn( - u'No such user foobar found
', - output.data) + output.get_data(as_text=True)) self._check_user() @@ -121,7 +121,7 @@ class PagureFlaskGiveRepotests(tests.SimplePagureTest): output = self.app.post( '/test/give', data=data, follow_redirects=True) self.assertEqual(output.status_code, 404) - self.assertIn('No user specified
', output.data) + self.assertIn('No user specified
', output.get_data(as_text=True)) self._check_user() @@ -146,7 +146,7 @@ class PagureFlaskGiveRepotests(tests.SimplePagureTest): self.assertEqual(output.status_code, 403) self.assertIn( 'You are not allowed to change the settings for this ' - 'project
', output.data) + 'project', output.get_data(as_text=True)) self._check_user() @@ -171,7 +171,7 @@ class PagureFlaskGiveRepotests(tests.SimplePagureTest): self.assertEqual(output.status_code, 403) self.assertIn( 'You are not allowed to change the settings for this ' - 'project
', output.data) + 'project', output.get_data(as_text=True)) self._check_user() @@ -207,7 +207,7 @@ class PagureFlaskGiveRepotests(tests.SimplePagureTest): self.assertEqual(output.status_code, 403) self.assertIn( 'You are not allowed to give this project
', - output.data) + output.get_data(as_text=True)) self._check_user() @@ -241,7 +241,7 @@ class PagureFlaskGiveRepotests(tests.SimplePagureTest): self.assertIn( '\n The project has been ' 'transferred to foo\n', - output.data) + output.get_data(as_text=True)) self._check_user('foo') @@ -269,7 +269,7 @@ class PagureFlaskGiveRepotests(tests.SimplePagureTest): self.assertIn( '\n The project has been ' 'transferred to foo\n', - output.data) + output.get_data(as_text=True)) self._check_user('foo') # Make sure that the user giving the project is still an admin @@ -311,7 +311,7 @@ class PagureFlaskGiveRepotests(tests.SimplePagureTest): self.assertIn( '\n The project has been ' 'transferred to foo\n', - output.data) + output.get_data(as_text=True)) self._check_user('foo') # Make sure that the user giving the project is still an admin diff --git a/tests/test_pagure_flask_ui_app_index.py b/tests/test_pagure_flask_ui_app_index.py index 092f910..5c44ad7 100644 --- a/tests/test_pagure_flask_ui_app_index.py +++ b/tests/test_pagure_flask_ui_app_index.py @@ -40,17 +40,19 @@ class PagureFlaskAppIndextests(tests.Modeltests): self.assertEqual(output.status_code, 200) self.assertIn( 'No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('No group found
'), 1) + output_text.count('No group found
'), 1) self.assertEqual( - output.data.count('Pull-Request has been merged by pingou
', - output.data) + output.get_data(as_text=True)) @patch('pagure.lib.notify.send_email') def test_merge_request_pull_merge(self, send_email): @@ -473,13 +483,13 @@ class PagureFlaskForktests(tests.Modeltests): '/test/pull-request/1/merge', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) self.assertIn( - 'Pull-Request has been merged by pingou
', - output.data) + output.get_data(as_text=True)) @patch('pagure.lib.notify.send_email') def test_merge_request_pull_merge_with_delete_branch(self, send_email): @@ -507,11 +517,12 @@ class PagureFlaskForktests(tests.Modeltests): output = self.app.post( '/test/pull-request/1/merge', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( - 'Pull-Request has been merged by pingou
', - output.data) + output.get_data(as_text=True)) @patch('pagure.lib.notify.send_email') def test_request_pull_close(self, send_email): @@ -631,12 +645,13 @@ class PagureFlaskForktests(tests.Modeltests): output = self.app.get('/test/pull-request/1') self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'No commits found
', output.data) + 'No commits found
', output_text) output = self.app.get('/test/diff/master..feature') self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'Test Initial Comment
', output.data) - self.assertEqual(output.data.count('title="PY C (pingou)"'), 1) + output_text) + self.assertIn('Test Initial Comment
', + output_text) + self.assertEqual( + output_text.count('title="PY C (pingou)"'), + 1) # Test if the `open changed file icon` is displayed. self.assertIn( 'class="open_changed_file_icon_wrap">' - '', output.data) + '', output_text) # Case 2 - Add an empty initial comment data = { @@ -1739,10 +1782,11 @@ index 0000000..2a552bb output = self.app.post( '/test/diff/master..feature', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( '\nhttps://pagure.org/api/0/ci/jenkins/test/',
- output.data)
+ output_text)
# De-activate the hook
data = {
@@ -134,28 +139,30 @@ class PagureFlaskPluginPagureCItests(tests.SimplePagureTest):
output = self.app.post(
'/test/settings/Pagure CI', data=data, follow_redirects=True)
self.assertEqual(output.status_code, 200)
+ output_text = output.get_data(as_text=True)
self.assertIn(
'\n Hook Pagure CI deactivated',
- output.data)
+ output_text)
self.assertIn(
'\n Settings for test
',
- output.data)
+ output_text)
output = self.app.get('/test/settings/Pagure CI')
self.assertEqual(output.status_code, 200)
+ output_text = output.get_data(as_text=True)
self.assertIn(
'\n'
- 'test project #1 ', output.data)
- self.assertTrue('Pagure CI settings
' in output.data)
+ 'test project #1 \nhttps://pagure.org/api/0/ci/jenkins/somenamespace/test3/',
- output.data)
+ output_text)
if __name__ == '__main__':
diff --git a/tests/test_pagure_flask_ui_plugins_pagure_hook.py b/tests/test_pagure_flask_ui_plugins_pagure_hook.py
index 88aa3e7..e6d38e1 100644
--- a/tests/test_pagure_flask_ui_plugins_pagure_hook.py
+++ b/tests/test_pagure_flask_ui_plugins_pagure_hook.py
@@ -46,13 +46,14 @@ class PagureFlaskPluginPagureHooktests(tests.SimplePagureTest):
with tests.user_set(self.app.application, user):
output = self.app.get('/test/settings/Pagure')
self.assertEqual(output.status_code, 200)
+ output_text = output.get_data(as_text=True)
self.assertIn(
'\n'
- 'test project #1 ', output.data)
- self.assertTrue('Pagure settings
' in output.data)
- self.assertTrue(
+ 'test project #1 This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertIn('This repo is brand new!
', output_text) output = self.app.get('/TEST') self.assertEqual(output.status_code, 404) @@ -1463,22 +1524,24 @@ class PagureFlaskRepotests(tests.Modeltests): output = self.app.get('/test') self.assertEqual(output.status_code, 200) - self.assertTrue('This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
' in output.data) - self.assertFalse('Forked from' in output.data) - self.assertFalse('README.txt' in output.data) - self.assertFalse('README.dummy' in output.data) + output_text) + self.assertNotIn('This repo is brand new!
', output_text) + self.assertNotIn('Forked from', output_text) + self.assertNotIn('README.txt', output_text) + self.assertNotIn('README.dummy', output_text) self.assertIn( 'This repo is brand new!
' in output.data) - self.assertFalse('Forked from' in output.data) - self.assertFalse('README.txt' in output.data) - self.assertFalse('README.dummy' in output.data) + output_text) + self.assertNotIn('This repo is brand new!
', output_text) + self.assertNotIn('Forked from', output_text) + self.assertNotIn('README.txt', output_text) + self.assertNotIn('README.dummy', output_text) self.assertIn( 'This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
' in output.data) - self.assertFalse('Forked from' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) + self.assertNotIn('Forked from', output_text) self.assertIn( 'This repo is brand new!
' in output.data) - self.assertFalse('Forked from' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) + self.assertNotIn('Forked from', output_text) self.assertIn( 'This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
' in output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
', output.data) + output_text = output.get_data(as_text=True) + self.assertIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
', output.data) - self.assertNotIn('Forked from', output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) + self.assertNotIn('Forked from', output_text) self.assertIn( 'This repo is brand new!
', output.data) - self.assertNotIn('Forked from', output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) + self.assertNotIn('Forked from', output_text) self.assertIn( 'This repo is brand new!
', output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( 'This repo is brand new!
', output.data) + output_text = output.get_data(as_text=True) + self.assertNotIn('This repo is brand new!
', output_text) self.assertIn( '| ' - in output.data) - self.assertTrue( - ' | bar | ' in output.data)
+ output_text = output.get_data(as_text=True)
+ self.assertIn('
| ', + output_text) + self.assertIn( + ' | bar | ', output_text)
# Empty files should also be displayed
tests.add_content_to_git(
@@ -2050,22 +2139,24 @@ class PagureFlaskRepotests(tests.Modeltests):
content="")
output = self.app.get('/test/blob/master/f/emptyfile.md')
self.assertEqual(output.status_code, 200)
+ output_text = output.get_data(as_text=True)
self.assertIn(
'Raw', output.data)
+ 'title="View as raw">Raw', output_text)
self.assertIn(
'
| ', output.data) + 'data-line-number="1">', output_text) self.assertTrue( ' | Row 0 | '
- in output.data
+ in output_text
or
- 'Row 0 | ' in output.data
+ 'Row 0 | ' in output_text
)
# Add a fork of a fork
@@ -2161,20 +2259,22 @@ class PagureFlaskRepotests(tests.Modeltests):
output = self.app.get(
'/fork/pingou/test3/blob/master/f/folder1/folder2/file')
self.assertEqual(output.status_code, 200)
+ output_text = output.get_data(as_text=True)
self.assertIn(
'
Test Initial Comment
', output.data) + output_text) + self.assertIn('Test Initial Comment
', output_text) # Check if commit start and stop have been set for PR#2 request = pagure.lib.search_pull_requests( @@ -1962,8 +2011,8 @@ index 0000000..2a552bb '/fork/ralph/test/diff/master..feature') self.assertEqual(output.status_code, 404) self.assertIn( - u'No pull-request allowed on this project
', - output.data) + 'No pull-request allowed on this project
', + output.get_data(as_text=True)) @patch('pagure.lib.notify.send_email') def test_new_request_pull_fork_to_fork(self, send_email): @@ -2038,12 +2087,13 @@ index 0000000..2a552bb output = self.app.get( '/fork/ralph/test/diff/master..feature') self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'Test Initial Comment
', output.data) + output_text) + self.assertIn('Test Initial Comment
', output_text) @patch('pagure.lib.notify.send_email') def test_new_request_pull_fork_to_other_fork(self, send_email): @@ -2131,12 +2182,13 @@ index 0000000..2a552bb output = self.app.get( '/fork/ralph/test/diff/master..feature?project_to=fork/foo/test') self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'Test Initial Comment
', output.data) + output_text) + self.assertIn('Test Initial Comment
', output_text) # Case 1 - Opening PR to parent repo, shows project_to works output = self.app.post( '/fork/ralph/test/diff/master..feature', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'Test Initial Comment
', output.data) + output_text) + self.assertIn('Test Initial Comment
', output_text) @patch('pagure.lib.notify.send_email') def test_new_request_pull_fork_to_other_unrelated_fork(self, send_email): @@ -2242,8 +2296,8 @@ index 0000000..2a552bb data=data, follow_redirects=True) self.assertEqual(output.status_code, 400) self.assertIn( - u"fork/foo/test is not part of fork/ralph/test2's " - u"family
", output.data) + "fork/foo/test is not part of fork/ralph/test2's " + "family
", output.get_data(as_text=True)) @patch('pagure.lib.notify.send_email') def test_new_request_pull_empty_repo(self, send_email): @@ -2275,8 +2329,8 @@ index 0000000..2a552bb follow_redirects=True) self.assertEqual(output.status_code, 400) self.assertIn( - u'Fork is empty, there are no commits to create a pull ' - u'request with
', output.data) + 'Fork is empty, there are no commits to create a pull ' + 'request with
', output.get_data(as_text=True)) output = self.app.get('/test/new_issue') csrf_token = self.get_csrf(output=output) @@ -2290,8 +2344,8 @@ index 0000000..2a552bb '/test/diff/master..feature', data=data, follow_redirects=True) self.assertEqual(output.status_code, 400) self.assertIn( - u'Fork is empty, there are no commits to create a pull ' - u'request with
', output.data) + 'Fork is empty, there are no commits to create a pull ' + 'request with
', output.get_data(as_text=True)) shutil.rmtree(newpath) @@ -2325,8 +2379,8 @@ index 0000000..2a552bb '/fork/foo/test/diff/master..master', follow_redirects=True) self.assertEqual(output.status_code, 400) self.assertIn( - u'Fork is empty, there are no commits to create a pull ' - u'request with
', output.data) + 'Fork is empty, there are no commits to create a pull ' + 'request with
', output.get_data(as_text=True)) shutil.rmtree(newpath) @@ -2349,7 +2403,7 @@ index 0000000..2a552bb output = self.app.post('/test/pull-request/1/comment') self.assertEqual(output.status_code, 200) self.assertTrue( - output.data.startswith('\nPR#1\n' - ' PR from the feature branch\n
', output.data) - #self.assertIn('href="#comment-1">¶', output.data) + ' PR from the feature branch\n', output_text) + #self.assertIn('href="#comment-1">¶', output_text) self.assertIn( 'This look alright but we can do better
', - output.data) + output_text) csrf_token = self.get_csrf(output=output) @@ -2441,13 +2497,14 @@ index 0000000..2a552bb '/test/pull-request/1/comment/drop', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'PR#1\n' ' PR from the feature branch\n ', - output.data) + output_text) self.assertIn( '\n Comment removed', - output.data) + output_text) # Project w/o pull-request repo = pagure.lib.get_authorized_project(self.session, 'test') @@ -2484,7 +2541,7 @@ index 0000000..2a552bb self.assertEqual(output.status_code, 200) # Creating comment to play with self.assertTrue( - output.data.startswith('\n'))
+ output.get_data(as_text=True).startswith('\n'))
csrf_token = self.get_csrf(output=output)
@@ -2497,23 +2554,25 @@ index 0000000..2a552bb
follow_redirects=True)
self.assertEqual(output.status_code, 200)
+ output_text = output.get_data(as_text=True)
self.assertIn(
'
\n', + output.get_data(as_text=True)) # Test pull-request endpoint output = self.app.get('/fork/foo/test/pull-requests') diff --git a/tests/test_pagure_flask_ui_groups.py b/tests/test_pagure_flask_ui_groups.py index 5c2e095..6411a4e 100644 --- a/tests/test_pagure_flask_ui_groups.py +++ b/tests/test_pagure_flask_ui_groups.py @@ -35,7 +35,7 @@ class PagureFlaskGroupstests(tests.Modeltests): self.assertIn( 'PR#1\n' ' PR from the feature branch\n ', - output.data) + output_text) self.assertIn( '\n Comment added', - output.data) + output_text) # Check if the comment is there self.assertIn( - '', output.data)
+ self.assertIn('', output_text)
# Checking if the comment is there in the update page
self.assertIn(
- 'This look alright but we can do better', output.data)
+ 'This look alright but we can do better', output_text)
csrf_token = self.get_csrf(output=output)
@@ -2524,22 +2583,23 @@ index 0000000..2a552bb
output = self.app.post(
'/test/pull-request/1/comment/1/edit', data=data,
follow_redirects=True)
+ output_text = output.get_data(as_text=True)
# Checking if the comment is updated in the main page
self.assertIn(
- 'Overview - test - Pagure ', output.data)
+ 'Overview - test - Pagure ', output_text)
self.assertIn(
- 'Merge #1 `PR from the feature branch`', output.data)
+ 'Merge #1 `PR from the feature branch`', output_text)
self.assertIn(
- 'A commit on branch feature', output.data)
+ 'A commit on branch feature', output_text)
# Ensure we have the merge commit
- commits = _get_commits(output.data)
+ commits = _get_commits(output_text)
self.assertEqual(commits, [
'Merge #1 `PR from the feature branch`',
'A commit on branch feature',
@@ -2640,7 +2702,7 @@ index 0000000..2a552bb
output = self.app.get('/test/pull-request/1')
self.assertIn(
''
' master'
' '
' sources ',
- output.data)
+ output_text)
self.assertIn(
'',
- output.data)
+ output_text)
# View what's supposed to be an image
output = self.app.post('fork_edit/test/edit/master/f/test.jpg',
data=data, follow_redirects=True)
self.assertEqual(output.status_code, 400)
- self.assertIn('
\n', output.data) + self.assertIn( + 'Commits 2\nThis look alright but we can do better
', output.data) + 'This look alright but we can do better
', output_text) output = self.app.get('/test/pull-request/1/comment/1/edit') self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) - self.assertIn('This look alright but we can do better than this.
', output.data) + 'This look alright but we can do better than this.
', output_text) self.assertIn( 'PR#1\n' ' PR from the feature branch\n ', - output.data) + output_text) # Checking if Edited by User is there or not self.assertTrue( 'Edited just now by pingou ' - in output.data + in output_text or 'Edited seconds ago by pingou ' - in output.data) + in output_text) self.assertIn( - '\n Comment updated', output.data) + '\n Comment updated', output_text) # Project w/o pull-request repo = pagure.lib.get_authorized_project(self.session, 'test') @@ -2574,14 +2634,15 @@ index 0000000..2a552bb output = self.app.post( '/test/pull-request/1/merge', data={}, follow_redirects=True) self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'PR#1: PR from the feature branch - test\n - '
- 'Pagure ', output.data)
+ 'Pagure', output_text)
self.assertIn(
'
', output_text) self.assertIn( - 'title="View file as of 2a552b">sources', output.data) + 'title="View file as of 2a552b">sources', output_text) # Wrong project data = { @@ -2622,14 +2683,15 @@ index 0000000..2a552bb output = self.app.post( '/test/pull-request/1/merge', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( - 'PR#1\n' - ' PR from the feature branch\n
', output.data) + ' PR from the feature branch\nPull-Request has been merged by pingou
', - output.data) + output.get_data(as_text=True)) @patch('pagure.lib.notify.send_email') def test_internal_endpoint_main_ahead(self, send_email): @@ -2749,16 +2811,14 @@ index 0000000..2a552bb user.username = 'foo' with tests.user_set(self.app.application, user): - output = self.app.get('/new') - csrf_token = output.data.split( - 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + csrf_token = self.get_csrf() output = self.app.post( '/pv/pull-request/ready', data={'repo': 'test', 'csrf_token': csrf_token} ) self.assertEqual(output.status_code, 200) - data = json.loads(output.data) + data = json.loads(output.get_data(as_text=True)) self.assertEqual( data, { @@ -2800,7 +2860,7 @@ index 0000000..2a552bb output = self.app.get('/new/') self.assertEqual(output.status_code, 200) - self.assertIn('Create new Project', output.data) + self.assertIn('Create new Project', output.get_data(as_text=True)) csrf_token = self.get_csrf(output=output) @@ -2842,41 +2902,42 @@ index 0000000..2a552bb self.assertEqual(output.status_code, 200) self.assertIn( 'Fork and Edit\n \n', - output.data) + output.get_data(as_text=True)) # Check fork-edit doesn't show for binary files output = self.app.get('/test/blob/master/f/test.jpg') self.assertEqual(output.status_code, 200) self.assertNotIn( 'Fork and Edit\n \n', - output.data) + output.get_data(as_text=True)) # Check for edit panel output = self.app.post('fork_edit/test/edit/master/f/sources', data=data, follow_redirects=True) self.assertEqual(output.status_code, 200) + output_text = output.get_data(as_text=True) self.assertIn( 'Cannot edit binary files
', output.data) + self.assertIn('Cannot edit binary files
', output.get_data(as_text=True)) # Check fork-edit shows when user is not logged in output = self.app.get('/test/blob/master/f/sources') self.assertEqual(output.status_code, 200) self.assertIn( 'Fork and Edit\n \n', - output.data) + output.get_data(as_text=True)) # Check if fork-edit shows for different user user.username = 'pingou' @@ -2887,14 +2948,14 @@ index 0000000..2a552bb self.assertEqual(output.status_code, 200) self.assertIn( 'Edit in your fork\n \n', - output.data) + output.get_data(as_text=True)) # Check fork-edit doesn't show for binary output = self.app.get('/test/blob/master/f/test.jpg') self.assertEqual(output.status_code, 200) self.assertNotIn( 'Edit in your fork\n \n', - output.data) + output.get_data(as_text=True)) @patch('pagure.lib.notify.send_email') def test_fork_without_main_repo(self, send_email): @@ -2945,12 +3006,14 @@ index 0000000..2a552bb # UI test for deleted main output = self.app.get('/fork/foo/test') self.assertEqual(output.status_code, 200) - self.assertIn('Fork from a deleted repository\n', output.data) + self.assertIn('Fork from a deleted repository\n', output.get_data(as_text=True)) # Testing commit endpoint output = self.app.get('/fork/foo/test/commits/master') self.assertEqual(output.status_code, 200) - self.assertIn('Commits 2\n\n' ' Groups 0', - output.data) + output.get_data(as_text=True)) def test_add_group_index_auth(self): """ Test the presence of the add group button on the front page. """ @@ -45,7 +45,7 @@ class PagureFlaskGroupstests(tests.Modeltests): self.assertEqual(output.status_code, 200) self.assertIn( 'title="Create New Group" aria-hidden="true">', - output.data) + output.get_data(as_text=True)) @patch.dict('pagure.config.config', {'ENABLE_GROUP_MNGT': False}) def test_not_add_group_index_auth(self): @@ -56,7 +56,7 @@ class PagureFlaskGroupstests(tests.Modeltests): self.assertEqual(output.status_code, 200) self.assertNotIn( 'title="Create New Group" aria-hidden="true">', - output.data) + output.get_data(as_text=True)) def test_add_group(self): """ Test the add_group endpoint. """ @@ -72,11 +72,11 @@ class PagureFlaskGroupstests(tests.Modeltests): with tests.user_set(self.app.application, user): output = self.app.get('/group/add') self.assertEqual(output.status_code, 200) - self.assertIn('Create new group', output.data) + self.assertIn('Create new group', output.get_data(as_text=True)) self.assertNotIn( - '', output.data) + '', output.get_data(as_text=True)) - csrf_token = output.data.split( + csrf_token = output.get_data(as_text=True).split( 'name="csrf_token" type="hidden" value="')[1].split('">')[0] data = { @@ -85,8 +85,8 @@ class PagureFlaskGroupstests(tests.Modeltests): # Insufficient input output = self.app.post('/group/add', data=data) self.assertEqual(output.status_code, 200) - self.assertIn('Create new group', output.data) - self.assertEqual(output.data.count( + self.assertIn('Create new group', output.get_data(as_text=True)) + self.assertEqual(output.get_data(as_text=True).count( 'This field is required.'), 3) data = { @@ -98,8 +98,8 @@ class PagureFlaskGroupstests(tests.Modeltests): # Missing CSRF output = self.app.post('/group/add', data=data) self.assertEqual(output.status_code, 200) - self.assertIn('Create new group', output.data) - self.assertEqual(output.data.count( + self.assertIn('Create new group', output.get_data(as_text=True)) + self.assertEqual(output.get_data(as_text=True).count( 'This field is required.'), 0) data['csrf_token'] = csrf_token @@ -110,14 +110,14 @@ class PagureFlaskGroupstests(tests.Modeltests): self.assertEqual(output.status_code, 200) self.assertIn( '\n User `pingou` added to ' - 'the group `test_group`.', output.data) + 'the group `test_group`.', output.get_data(as_text=True)) self.assertIn( '\n Group `test_group` created.', - output.data) + output.get_data(as_text=True)) self.assertIn( '
\n' ' Groups 1', - output.data) + output.get_data(as_text=True)) user = tests.FakeUser( username='pingou', @@ -125,8 +125,8 @@ class PagureFlaskGroupstests(tests.Modeltests): with tests.user_set(self.app.application, user): output = self.app.get('/group/add') self.assertEqual(output.status_code, 200) - self.assertIn('Create new group', output.data) - self.assertIn('', output.data) + self.assertIn('Create new group', output.get_data(as_text=True)) + self.assertIn('', output.get_data(as_text=True)) data = { 'group_name': 'test_admin_group', @@ -142,14 +142,14 @@ class PagureFlaskGroupstests(tests.Modeltests): self.assertEqual(output.status_code, 200) self.assertIn( '\n User `pingou` added to ' - 'the group `test_admin_group`.', output.data) + 'the group `test_admin_group`.', output.get_data(as_text=True)) self.assertIn( '\n Group `test_admin_group` ' - 'created.',output.data) + 'created.',output.get_data(as_text=True)) self.assertIn( '
\n' ' Groups 2', - output.data) + output.get_data(as_text=True)) def test_edit_group(self): """ Test the edit_group endpoint. """ @@ -161,7 +161,7 @@ class PagureFlaskGroupstests(tests.Modeltests): with tests.user_set(self.app.application, user): output = self.app.get('/group/test_group/edit') self.assertEqual(output.status_code, 404) - self.assertIn('
Group not found
', output.data) + self.assertIn('Group not found
', output.get_data(as_text=True)) self.test_add_group() @@ -169,21 +169,21 @@ class PagureFlaskGroupstests(tests.Modeltests): with tests.user_set(self.app.application, user): output = self.app.get('/group/foo/edit') self.assertEqual(output.status_code, 404) - self.assertIn('Group not found
', output.data) + self.assertIn('Group not found
', output.get_data(as_text=True)) output = self.app.get('/group/test_group/edit') self.assertEqual(output.status_code, 200) self.assertIn( '