|
Pierre-Yves Chibon |
c71c2d |
# -*- coding: utf-8 -*-
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
"""
|
|
Pierre-Yves Chibon |
c71c2d |
(c) 2015 - Copyright Red Hat Inc
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
Authors:
|
|
Pierre-Yves Chibon |
c71c2d |
Pierre-Yves Chibon <pingou@pingoured.fr></pingou@pingoured.fr>
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
"""
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
__requires__ = ['SQLAlchemy >= 0.8']
|
|
Pierre-Yves Chibon |
c71c2d |
import pkg_resources
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
import datetime
|
|
Pierre-Yves Chibon |
c71c2d |
import unittest
|
|
Pierre-Yves Chibon |
c71c2d |
import shutil
|
|
Pierre-Yves Chibon |
c71c2d |
import sys
|
|
Pierre-Yves Chibon |
c71c2d |
import os
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
import json
|
|
Pierre-Yves Chibon |
c71c2d |
from mock import patch
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
sys.path.insert(0, os.path.join(os.path.dirname(
|
|
Pierre-Yves Chibon |
c71c2d |
os.path.abspath(__file__)), '..'))
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
import pagure.lib
|
|
Pierre-Yves Chibon |
c71c2d |
import tests
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
class PagureFlaskApiForktests(tests.Modeltests):
|
|
Pierre-Yves Chibon |
c71c2d |
""" Tests for the flask API of pagure for issue """
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
def setUp(self):
|
|
Pierre-Yves Chibon |
c71c2d |
""" Set up the environnment, ran before every tests. """
|
|
Pierre-Yves Chibon |
c71c2d |
super(PagureFlaskApiForktests, self).setUp()
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
pagure.APP.config['TESTING'] = True
|
|
Pierre-Yves Chibon |
c71c2d |
pagure.SESSION = self.session
|
|
Pierre-Yves Chibon |
c71c2d |
pagure.api.SESSION = self.session
|
|
Pierre-Yves Chibon |
c71c2d |
pagure.api.fork.SESSION = self.session
|
|
Pierre-Yves Chibon |
c71c2d |
pagure.lib.SESSION = self.session
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
pagure.APP.config['REQUESTS_FOLDER'] = None
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
self.app = pagure.APP.test_client()
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
def test_api_pull_request_view(self):
|
|
Pierre-Yves Chibon |
c71c2d |
""" Test the api_pull_request_view method of the flask api. """
|
|
Pierre-Yves Chibon |
c71c2d |
tests.create_projects(self.session)
|
|
Pierre-Yves Chibon |
c71c2d |
tests.create_tokens(self.session)
|
|
Pierre-Yves Chibon |
c71c2d |
tests.create_acls(self.session)
|
|
Pierre-Yves Chibon |
c71c2d |
tests.create_tokens_acl(self.session)
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
# Create a pull-request
|
|
Pierre-Yves Chibon |
c71c2d |
repo = pagure.lib.get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
c71c2d |
forked_repo = pagure.lib.get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
c71c2d |
msg = pagure.lib.new_pull_request(
|
|
Pierre-Yves Chibon |
c71c2d |
session=self.session,
|
|
Pierre-Yves Chibon |
c71c2d |
repo_from=forked_repo,
|
|
Pierre-Yves Chibon |
c71c2d |
branch_from='master',
|
|
Pierre-Yves Chibon |
c71c2d |
repo_to=repo,
|
|
Pierre-Yves Chibon |
c71c2d |
branch_to='master',
|
|
Pierre-Yves Chibon |
c71c2d |
title='test pull-request',
|
|
Pierre-Yves Chibon |
c71c2d |
user='pingou',
|
|
Pierre-Yves Chibon |
c71c2d |
requestfolder=None,
|
|
Pierre-Yves Chibon |
c71c2d |
)
|
|
Pierre-Yves Chibon |
c71c2d |
self.session.commit()
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertEqual(msg, 'Request created')
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
# Invalid repo
|
|
Pierre-Yves Chibon |
c71c2d |
output = self.app.get('/api/0/foo/pull-request/1')
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertEqual(output.status_code, 404)
|
|
Pierre-Yves Chibon |
c71c2d |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
c71c2d |
data,
|
|
Pierre-Yves Chibon |
c71c2d |
{
|
|
Pierre-Yves Chibon |
c71c2d |
"error": "Project not found",
|
|
Pierre-Yves Chibon |
c71c2d |
"error_code": 1
|
|
Pierre-Yves Chibon |
c71c2d |
}
|
|
Pierre-Yves Chibon |
c71c2d |
)
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
# Invalid issue for this repo
|
|
Pierre-Yves Chibon |
c71c2d |
output = self.app.get('/api/0/test2/pull-request/1')
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertEqual(output.status_code, 404)
|
|
Pierre-Yves Chibon |
c71c2d |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
c71c2d |
data,
|
|
Pierre-Yves Chibon |
c71c2d |
{
|
|
Pierre-Yves Chibon |
c71c2d |
"error": "Pull-Request not found",
|
|
Pierre-Yves Chibon |
c71c2d |
"error_code": 9
|
|
Pierre-Yves Chibon |
c71c2d |
}
|
|
Pierre-Yves Chibon |
c71c2d |
)
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
# Valid issue
|
|
Pierre-Yves Chibon |
c71c2d |
output = self.app.get('/api/0/test/pull-request/1')
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertEqual(output.status_code, 200)
|
|
Pierre-Yves Chibon |
c71c2d |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
c71c2d |
data['date_created'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
data['project']['date_created'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
data['repo_from']['date_created'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
data['uid'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
c71c2d |
data,
|
|
Pierre-Yves Chibon |
c71c2d |
{
|
|
Pierre-Yves Chibon |
c71c2d |
"assignee": None,
|
|
Pierre-Yves Chibon |
c71c2d |
"branch": "master",
|
|
Pierre-Yves Chibon |
c71c2d |
"branch_from": "master",
|
|
Pierre-Yves Chibon |
c71c2d |
"comments": [],
|
|
Pierre-Yves Chibon |
c71c2d |
"commit_start": None,
|
|
Pierre-Yves Chibon |
c71c2d |
"commit_stop": None,
|
|
Pierre-Yves Chibon |
c71c2d |
"date_created": "1431414800",
|
|
Pierre-Yves Chibon |
c71c2d |
"id": 1,
|
|
Pierre-Yves Chibon |
c71c2d |
"project": {
|
|
Pierre-Yves Chibon |
c71c2d |
"date_created": "1431414800",
|
|
Pierre-Yves Chibon |
c71c2d |
"description": "test project #1",
|
|
Pierre-Yves Chibon |
c71c2d |
"id": 1,
|
|
Pierre-Yves Chibon |
c71c2d |
"name": "test",
|
|
Pierre-Yves Chibon |
c71c2d |
"parent": None,
|
|
Pierre-Yves Chibon |
c71c2d |
"settings": {
|
|
Pierre-Yves Chibon |
c71c2d |
"Minimum_score_to_merge_pull-request": -1,
|
|
Pierre-Yves Chibon |
c71c2d |
"Only_assignee_can_merge_pull-request": False,
|
|
Pierre-Yves Chibon |
c71c2d |
"Web-hooks": None,
|
|
Pierre-Yves Chibon |
c71c2d |
"issue_tracker": True,
|
|
Pierre-Yves Chibon |
c71c2d |
"project_documentation": True,
|
|
Pierre-Yves Chibon |
c71c2d |
"pull_requests": True
|
|
Pierre-Yves Chibon |
c71c2d |
},
|
|
Pierre-Yves Chibon |
c71c2d |
"user": {
|
|
Pierre-Yves Chibon |
c71c2d |
"emails": [
|
|
Pierre-Yves Chibon |
c71c2d |
"bar@pingou.com",
|
|
Pierre-Yves Chibon |
c71c2d |
"foo@pingou.com"
|
|
Pierre-Yves Chibon |
c71c2d |
],
|
|
Pierre-Yves Chibon |
c71c2d |
"fullname": "PY C",
|
|
Pierre-Yves Chibon |
c71c2d |
"name": "pingou"
|
|
Pierre-Yves Chibon |
c71c2d |
}
|
|
Pierre-Yves Chibon |
c71c2d |
},
|
|
Pierre-Yves Chibon |
c71c2d |
"repo_from": {
|
|
Pierre-Yves Chibon |
c71c2d |
"date_created": "1431414800",
|
|
Pierre-Yves Chibon |
c71c2d |
"description": "test project #1",
|
|
Pierre-Yves Chibon |
c71c2d |
"id": 1,
|
|
Pierre-Yves Chibon |
c71c2d |
"name": "test",
|
|
Pierre-Yves Chibon |
c71c2d |
"parent": None,
|
|
Pierre-Yves Chibon |
c71c2d |
"settings": {
|
|
Pierre-Yves Chibon |
c71c2d |
"Minimum_score_to_merge_pull-request": -1,
|
|
Pierre-Yves Chibon |
c71c2d |
"Only_assignee_can_merge_pull-request": False,
|
|
Pierre-Yves Chibon |
c71c2d |
"Web-hooks": None,
|
|
Pierre-Yves Chibon |
c71c2d |
"issue_tracker": True,
|
|
Pierre-Yves Chibon |
c71c2d |
"project_documentation": True,
|
|
Pierre-Yves Chibon |
c71c2d |
"pull_requests": True
|
|
Pierre-Yves Chibon |
c71c2d |
},
|
|
Pierre-Yves Chibon |
c71c2d |
"user": {
|
|
Pierre-Yves Chibon |
c71c2d |
"emails": [
|
|
Pierre-Yves Chibon |
c71c2d |
"bar@pingou.com",
|
|
Pierre-Yves Chibon |
c71c2d |
"foo@pingou.com"
|
|
Pierre-Yves Chibon |
c71c2d |
],
|
|
Pierre-Yves Chibon |
c71c2d |
"fullname": "PY C",
|
|
Pierre-Yves Chibon |
c71c2d |
"name": "pingou"
|
|
Pierre-Yves Chibon |
c71c2d |
}
|
|
Pierre-Yves Chibon |
c71c2d |
},
|
|
Pierre-Yves Chibon |
c71c2d |
"status": True,
|
|
Pierre-Yves Chibon |
c71c2d |
"title": "test pull-request",
|
|
Pierre-Yves Chibon |
c71c2d |
"uid": "1431414800",
|
|
Pierre-Yves Chibon |
c71c2d |
"user": {
|
|
Pierre-Yves Chibon |
c71c2d |
"default_email": "bar@pingou.com",
|
|
Pierre-Yves Chibon |
c71c2d |
"emails": [
|
|
Pierre-Yves Chibon |
c71c2d |
"bar@pingou.com",
|
|
Pierre-Yves Chibon |
c71c2d |
"foo@pingou.com"
|
|
Pierre-Yves Chibon |
c71c2d |
],
|
|
Pierre-Yves Chibon |
c71c2d |
"fullname": "PY C",
|
|
Pierre-Yves Chibon |
c71c2d |
"name": "pingou"
|
|
Pierre-Yves Chibon |
c71c2d |
}
|
|
Pierre-Yves Chibon |
c71c2d |
}
|
|
Pierre-Yves Chibon |
c71c2d |
)
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
headers = {'Authorization': 'token aaabbbcccddd'}
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
# Access Pull-Request authenticated
|
|
Pierre-Yves Chibon |
c71c2d |
output = self.app.get('/api/0/test/pull-request/1', headers=headers)
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertEqual(output.status_code, 200)
|
|
Pierre-Yves Chibon |
c71c2d |
data2 = json.loads(output.data)
|
|
Pierre-Yves Chibon |
c71c2d |
data2['date_created'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
data2['project']['date_created'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
data2['repo_from']['date_created'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
data2['uid'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
data2['date_created'] = '1431414800'
|
|
Pierre-Yves Chibon |
c71c2d |
self.assertDictEqual(data, data2)
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
9ba77b |
def test_api_pull_request_add_comment(self):
|
|
Pierre-Yves Chibon |
9ba77b |
""" Test the api_pull_request_add_comment method of the flask api. """
|
|
Pierre-Yves Chibon |
9ba77b |
tests.create_projects(self.session)
|
|
Pierre-Yves Chibon |
9ba77b |
tests.create_tokens(self.session)
|
|
Pierre-Yves Chibon |
9ba77b |
tests.create_acls(self.session)
|
|
Pierre-Yves Chibon |
9ba77b |
tests.create_tokens_acl(self.session)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
headers = {'Authorization': 'token aaabbbcccddd'}
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# Invalid project
|
|
Pierre-Yves Chibon |
9ba77b |
output = self.app.post(
|
|
Pierre-Yves Chibon |
9ba77b |
'/api/0/foo/pull-request/1/comment', headers=headers)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(output.status_code, 404)
|
|
Pierre-Yves Chibon |
9ba77b |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
9ba77b |
data,
|
|
Pierre-Yves Chibon |
9ba77b |
{
|
|
Pierre-Yves Chibon |
9ba77b |
"error": "Project not found",
|
|
Pierre-Yves Chibon |
9ba77b |
"error_code": 1
|
|
Pierre-Yves Chibon |
9ba77b |
}
|
|
Pierre-Yves Chibon |
9ba77b |
)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# Valid token, wrong project
|
|
Pierre-Yves Chibon |
9ba77b |
output = self.app.post(
|
|
Pierre-Yves Chibon |
9ba77b |
'/api/0/test2/pull-request/1/comment', headers=headers)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(output.status_code, 401)
|
|
Pierre-Yves Chibon |
9ba77b |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
9ba77b |
data,
|
|
Pierre-Yves Chibon |
9ba77b |
{
|
|
Pierre-Yves Chibon |
9ba77b |
"error": "Invalid or expired token. Please visit " \
|
|
Pierre-Yves Chibon |
9ba77b |
"https://pagure.org/ get or renew your API token.",
|
|
Pierre-Yves Chibon |
9ba77b |
"error_code": 5
|
|
Pierre-Yves Chibon |
9ba77b |
}
|
|
Pierre-Yves Chibon |
9ba77b |
)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# No input
|
|
Pierre-Yves Chibon |
9ba77b |
output = self.app.post(
|
|
Pierre-Yves Chibon |
9ba77b |
'/api/0/test/pull-request/1/comment', headers=headers)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(output.status_code, 404)
|
|
Pierre-Yves Chibon |
9ba77b |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
9ba77b |
data,
|
|
Pierre-Yves Chibon |
9ba77b |
{
|
|
Pierre-Yves Chibon |
9ba77b |
"error": "Pull-Request not found",
|
|
Pierre-Yves Chibon |
9ba77b |
"error_code": 9
|
|
Pierre-Yves Chibon |
9ba77b |
}
|
|
Pierre-Yves Chibon |
9ba77b |
)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# Create a pull-request
|
|
Pierre-Yves Chibon |
9ba77b |
repo = pagure.lib.get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
9ba77b |
forked_repo = pagure.lib.get_project(self.session, 'test')
|
|
Pierre-Yves Chibon |
9ba77b |
msg = pagure.lib.new_pull_request(
|
|
Pierre-Yves Chibon |
9ba77b |
session=self.session,
|
|
Pierre-Yves Chibon |
9ba77b |
repo_from=forked_repo,
|
|
Pierre-Yves Chibon |
9ba77b |
branch_from='master',
|
|
Pierre-Yves Chibon |
9ba77b |
repo_to=repo,
|
|
Pierre-Yves Chibon |
9ba77b |
branch_to='master',
|
|
Pierre-Yves Chibon |
9ba77b |
title='test pull-request',
|
|
Pierre-Yves Chibon |
9ba77b |
user='pingou',
|
|
Pierre-Yves Chibon |
9ba77b |
requestfolder=None,
|
|
Pierre-Yves Chibon |
9ba77b |
)
|
|
Pierre-Yves Chibon |
9ba77b |
self.session.commit()
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(msg, 'Request created')
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# Check comments before
|
|
Pierre-Yves Chibon |
9ba77b |
request = pagure.lib.search_pull_requests(
|
|
Pierre-Yves Chibon |
9ba77b |
self.session, project_id=1, requestid=1)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(len(request.comments), 0)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
data = {
|
|
Pierre-Yves Chibon |
9ba77b |
'title': 'test issue',
|
|
Pierre-Yves Chibon |
9ba77b |
}
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# Incomplete request
|
|
Pierre-Yves Chibon |
9ba77b |
output = self.app.post(
|
|
Pierre-Yves Chibon |
9ba77b |
'/api/0/test/pull-request/1/comment', data=data, headers=headers)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(output.status_code, 400)
|
|
Pierre-Yves Chibon |
9ba77b |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
9ba77b |
data,
|
|
Pierre-Yves Chibon |
9ba77b |
{
|
|
Pierre-Yves Chibon |
9ba77b |
"error": "Invalid or incomplete input submited",
|
|
Pierre-Yves Chibon |
9ba77b |
"error_code": 4
|
|
Pierre-Yves Chibon |
9ba77b |
}
|
|
Pierre-Yves Chibon |
9ba77b |
)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# No change
|
|
Pierre-Yves Chibon |
9ba77b |
request = pagure.lib.search_pull_requests(
|
|
Pierre-Yves Chibon |
9ba77b |
self.session, project_id=1, requestid=1)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(len(request.comments), 0)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
data = {
|
|
Pierre-Yves Chibon |
9ba77b |
'comment': 'This is a very interesting question',
|
|
Pierre-Yves Chibon |
9ba77b |
}
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# Valid request
|
|
Pierre-Yves Chibon |
9ba77b |
output = self.app.post(
|
|
Pierre-Yves Chibon |
9ba77b |
'/api/0/test/pull-request/1/comment', data=data, headers=headers)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(output.status_code, 200)
|
|
Pierre-Yves Chibon |
9ba77b |
data = json.loads(output.data)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertDictEqual(
|
|
Pierre-Yves Chibon |
9ba77b |
data,
|
|
Pierre-Yves Chibon |
9ba77b |
{'message': 'Comment added'}
|
|
Pierre-Yves Chibon |
9ba77b |
)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
9ba77b |
# One comment added
|
|
Pierre-Yves Chibon |
9ba77b |
request = pagure.lib.search_pull_requests(
|
|
Pierre-Yves Chibon |
9ba77b |
self.session, project_id=1, requestid=1)
|
|
Pierre-Yves Chibon |
9ba77b |
self.assertEqual(len(request.comments), 1)
|
|
Pierre-Yves Chibon |
9ba77b |
|
|
Pierre-Yves Chibon |
c71c2d |
|
|
Pierre-Yves Chibon |
c71c2d |
if __name__ == '__main__':
|
|
Pierre-Yves Chibon |
c71c2d |
SUITE = unittest.TestLoader().loadTestsFromTestCase(
|
|
Pierre-Yves Chibon |
c71c2d |
PagureFlaskApiForktests)
|
|
Pierre-Yves Chibon |
c71c2d |
unittest.TextTestRunner(verbosity=2).run(SUITE)
|