def test_wiki_page_refresh_by_title(self):
     self.response.json = json_response(responses['wiki_page']['get'])
     wiki_page = self.redmine.wiki_page.get('Foo', project_id=1)
     self.assertEqual(wiki_page.title, 'Foo')
     self.response.json = json_response({'wiki_page': {'title': 'Bar'}})
     wiki_page = wiki_page.refresh()
     self.assertEqual(wiki_page.title, 'Bar')
 def test_wiki_page_includes(self):
     response_includes = responses['wiki_page']['get']
     self.response.json = json_response(response_includes)
     wiki_page = self.redmine.wiki_page.get('Foo', project_id=1)
     response_includes['wiki_page']['attachments'] = responses['attachment']['get']['attachment']
     self.response.json = json_response(response_includes)
     self.assertIsInstance(wiki_page.attachments, ResourceSet)
 def test_saving_existing_resource_updates_it(self):
     self.response.json = json_response(responses['project']['get'])
     project = self.redmine.project.get(1)
     project.name = 'Bar'
     self.assertEqual(project.save(), True)
     self.response.json = json_response({'project': {'id': 1, 'name': 'Bar'}})
     project = project.refresh()
     self.assertEqual(project.name, 'Bar')
 def test_can_refresh_itself(self):
     self.response.json = json_response(responses['project']['get'])
     project = self.redmine.project.get(1)
     self.assertEqual(project.id, 1)
     self.assertEqual(project.name, 'Foo')
     self.response.json = json_response({'project': {'id': 2, 'name': 'Bar'}})
     project = project.refresh()
     self.assertEqual(project.id, 2)
     self.assertEqual(project.name, 'Bar')
 def test_group_includes(self):
     response_includes = responses['group']['get']
     self.response.json = json_response(response_includes)
     group = self.redmine.group.get(1)
     response_includes['group']['memberships'] = responses['project_membership']['filter']['memberships']
     self.response.json = json_response(response_includes)
     self.assertIsInstance(group.memberships, ResourceSet)
     response_includes['group']['users'] = responses['user']['all']['users']
     self.response.json = json_response(response_includes)
     self.assertIsInstance(group.users, ResourceSet)
 def test_project_includes(self):
     response_includes = responses['project']['get']
     self.response.json = json_response(response_includes)
     project = self.redmine.project.get(1)
     response_includes['project'].update(responses['issue_category']['filter'])
     self.response.json = json_response(response_includes)
     self.assertIsInstance(project.issue_categories, ResourceSet)
     response_includes['project'].update(responses['tracker']['all'])
     self.response.json = json_response(response_includes)
     self.assertIsInstance(project.trackers, ResourceSet)
Example #7
0
 def setUp(self):
     self.url = URL
     self.redmine = Redmine(self.url)
     self.response = mock.Mock(status_code=200, json=json_response(response))
     patcher = mock.patch('requests.get', return_value=self.response)
     patcher.start()
     self.addCleanup(patcher.stop)
 def test_group_all(self):
     self.response.json = json_response(responses['group']['all'])
     groups = self.redmine.group.all()
     self.assertEqual(groups[0].id, 1)
     self.assertEqual(groups[0].name, 'Foo')
     self.assertEqual(groups[1].id, 2)
     self.assertEqual(groups[1].name, 'Bar')
 def test_version_filter(self):
     self.response.json = json_response(responses['version']['filter'])
     versions = self.redmine.version.filter(project_id=1)
     self.assertEqual(versions[0].id, 1)
     self.assertEqual(versions[0].name, 'Foo')
     self.assertEqual(versions[1].id, 2)
     self.assertEqual(versions[1].name, 'Bar')
 def test_project_all(self):
     self.response.json = json_response(responses['project']['all'])
     projects = self.redmine.project.all()
     self.assertEqual(projects[0].id, 1)
     self.assertEqual(projects[0].name, 'Foo')
     self.assertEqual(projects[1].id, 2)
     self.assertEqual(projects[1].name, 'Bar')
Example #11
0
 def test_validation_error_exception(self):
     from redmine.exceptions import ValidationError
     self.response.status_code = 422
     self.response.json = json_response(
         {'errors': ['foo', 'bar', ['foo', 'bar']]})
     self.assertRaises(ValidationError,
                       lambda: self.redmine.request('post', self.url))
 def test_role_all(self):
     self.response.json = json_response(responses['role']['all'])
     roles = self.redmine.role.all()
     self.assertEqual(roles[0].id, 1)
     self.assertEqual(roles[0].name, 'Foo')
     self.assertEqual(roles[1].id, 2)
     self.assertEqual(roles[1].name, 'Bar')
 def test_issue_add_watcher_raises_exception_if_wrong_version(self):
     from redmine.exceptions import ResourceVersionMismatchError
     self.response.json = json_response(responses['issue']['get'])
     self.redmine.ver = '2.2.0'
     issue = self.redmine.issue.get(1)
     self.response.content = ''
     self.assertRaises(ResourceVersionMismatchError, lambda: issue.watcher.add(1))
 def test_saving_new_resource_creates_it(self):
     self.response.status_code = 201
     self.response.json = json_response(responses['project']['get'])
     project = self.redmine.project.new()
     project.name = 'Foo'
     self.assertEqual(project.save(), True)
     self.assertEqual(project.id, 1)
 def test_tracker_all(self):
     self.response.json = json_response(responses['tracker']['all'])
     trackers = self.redmine.tracker.all()
     self.assertEqual(trackers[0].id, 1)
     self.assertEqual(trackers[0].name, 'Foo')
     self.assertEqual(trackers[1].id, 2)
     self.assertEqual(trackers[1].name, 'Bar')
 def test_query_all(self):
     self.response.json = json_response(responses['query']['all'])
     queries = self.redmine.query.all()
     self.assertEqual(queries[0].id, 1)
     self.assertEqual(queries[0].name, 'Foo')
     self.assertEqual(queries[1].id, 2)
     self.assertEqual(queries[1].name, 'Bar')
 def test_news_filter(self):
     self.response.json = json_response(responses['news']['filter'])
     news = self.redmine.news.filter(project_id=1)
     self.assertEqual(news[0].id, 1)
     self.assertEqual(news[0].title, 'Foo')
     self.assertEqual(news[1].id, 2)
     self.assertEqual(news[1].title, 'Bar')
 def test_issue_status_all(self):
     self.response.json = json_response(responses['issue_status']['all'])
     statuses = self.redmine.issue_status.all()
     self.assertEqual(statuses[0].id, 1)
     self.assertEqual(statuses[0].name, 'Foo')
     self.assertEqual(statuses[1].id, 2)
     self.assertEqual(statuses[1].name, 'Bar')
 def test_news_all(self):
     self.response.json = json_response(responses['news']['all'])
     news = self.redmine.news.all()
     self.assertEqual(news[0].id, 1)
     self.assertEqual(news[0].title, 'Foo')
     self.assertEqual(news[1].id, 2)
     self.assertEqual(news[1].title, 'Bar')
 def test_get_single_resource(self, mock_get):
     mock_get.return_value = response = mock.Mock(status_code=200)
     response.json = json_response({'project': {'name': 'Foo', 'identifier': 'foo', 'id': 1}})
     project = self.redmine.project.get('foo')
     self.assertEqual(project.name, 'Foo')
     self.assertEqual(project.identifier, 'foo')
     self.assertEqual(project.id, 1)
Example #21
0
 def test_successful_response_via_username_password(self):
     self.redmine.username = '******'
     self.redmine.password = '******'
     self.response.status_code = 200
     self.response.json = json_response({'success': True})
     self.assertEqual(
         self.redmine.request('get', self.url)['success'], True)
 def test_issue_all(self):
     self.response.json = json_response(responses['issue']['all'])
     issues = self.redmine.issue.all()
     self.assertEqual(issues[0].id, 1)
     self.assertEqual(issues[0].subject, 'Foo')
     self.assertEqual(issues[1].id, 2)
     self.assertEqual(issues[1].subject, 'Bar')
 def test_custom_field_all(self):
     self.response.json = json_response(responses['custom_field']['all'])
     fields = self.redmine.custom_field.all()
     self.assertEqual(fields[0].id, 1)
     self.assertEqual(fields[0].name, 'Foo')
     self.assertEqual(fields[1].id, 2)
     self.assertEqual(fields[1].name, 'Bar')
 def test_issue_filter(self):
     self.response.json = json_response(responses['issue']['filter'])
     issues = self.redmine.issue.filter(project_id=1)
     self.assertEqual(issues[0].id, 1)
     self.assertEqual(issues[0].subject, 'Foo')
     self.assertEqual(issues[1].id, 2)
     self.assertEqual(issues[1].subject, 'Bar')
 def test_dir_returns_resource_attributes(self):
     self.response.json = json_response(responses['issue']['get'])
     attributes = dir(self.redmine.issue.get(1))
     self.assertIn('id', attributes)
     self.assertIn('subject', attributes)
     self.assertIn('relations', attributes)
     self.assertIn('time_entries', attributes)
 def test_issue_category_filter(self):
     self.response.json = json_response(responses['issue_category']['filter'])
     categories = self.redmine.issue_category.filter(project_id=1)
     self.assertEqual(categories[0].id, 1)
     self.assertEqual(categories[0].name, 'Foo')
     self.assertEqual(categories[1].id, 2)
     self.assertEqual(categories[1].name, 'Bar')
 def test_issue_version_can_be_retrieved_via_version_attribute(self):
     from redmine.resources import Version
     self.response.json = json_response(
         {'issue': {'subject': 'Foo', 'id': 1, 'fixed_version': {'id': 1, 'name': 'Foo'}}}
     )
     issue = self.redmine.issue.get(1)
     self.assertIsInstance(issue.version, Version)
 def test_user_all(self):
     self.response.json = json_response(responses['user']['all'])
     users = self.redmine.user.all()
     self.assertEqual(users[0].id, 1)
     self.assertEqual(users[0].firstname, 'John')
     self.assertEqual(users[1].id, 2)
     self.assertEqual(users[1].firstname, 'Jack')
 def test_project_membership_update(self):
     self.response.json = json_response(responses['project_membership']['get'])
     membership = self.redmine.project_membership.get(1)
     membership.role_ids = [1, 2]
     self.assertEqual(membership.save(), True)
     self.assertEqual(membership.roles[0].id, 1)
     self.assertEqual(membership.roles[1].id, 2)
 def test_user_filter(self):
     self.response.json = json_response(responses['user']['filter'])
     users = self.redmine.user.filter(status_id=2)
     self.assertEqual(users[0].id, 1)
     self.assertEqual(users[0].firstname, 'John')
     self.assertEqual(users[1].id, 2)
     self.assertEqual(users[1].firstname, 'Jack')
 def test_enumeration_filter(self):
     self.response.json = json_response(responses['enumeration']['filter'])
     enumerations = self.redmine.enumeration.filter(resource='time_entry_activities')
     self.assertEqual(enumerations[0].id, 1)
     self.assertEqual(enumerations[0].name, 'Foo')
     self.assertEqual(enumerations[1].id, 2)
     self.assertEqual(enumerations[1].name, 'Bar')
 def test_time_entry_filter(self):
     self.response.json = json_response(responses['time_entry']['filter'])
     time_entries = self.redmine.time_entry.filter(issue_id=1)
     self.assertEqual(time_entries[0].id, 1)
     self.assertEqual(time_entries[0].hours, 3)
     self.assertEqual(time_entries[1].id, 2)
     self.assertEqual(time_entries[1].hours, 4)
 def test_time_entry_all(self):
     self.response.json = json_response(responses['time_entry']['all'])
     time_entries = self.redmine.time_entry.all()
     self.assertEqual(time_entries[0].id, 1)
     self.assertEqual(time_entries[0].hours, 3)
     self.assertEqual(time_entries[1].id, 2)
     self.assertEqual(time_entries[1].hours, 4)
Example #34
0
 def test_offset_limit(self):
     response_with_limit_offset = {'total_count': 2, 'limit': 3, 'offset': 1, 'projects': response['projects'][1:3]}
     self.response.json = json_response(response_with_limit_offset)
     projects = self.redmine.project.all()[1:3]
     self.assertEqual(projects.limit, 3)
     self.assertEqual(projects.offset, 1)
     self.assertEqual(projects[0].id, 2)
     self.assertEqual(projects[1].id, 3)
Example #35
0
 def test_offset_limit_all(self):
     self.response.json = json_response(dict(response, total_count=3, limit=0, offset=0))
     projects = self.redmine.project.all()
     self.assertEqual(projects.limit, 0)
     self.assertEqual(projects.offset, 0)
     self.assertEqual(projects[0].id, 1)
     self.assertEqual(projects[1].id, 2)
     self.assertEqual(projects[2].id, 3)
 def test_sliced_resultset_is_empty(self):
     self.response.json = json_response({
         'limit': 100,
         'projects': [],
         'total_count': 0,
         'offset': 0
     })
     projects = self.redmine.project.all()[:200]
     self.assertEqual(len(projects), 0)
     self.assertEqual(list(projects), [])
Example #37
0
 def test_auth(self):
     self.redmine.username = '******'
     self.redmine.password = '******'
     self.response.status_code = 200
     self.response.json = json_response(
         {'user': {
             'firstname': 'John',
             'lastname': 'Smith',
             'id': 1
         }})
     self.assertEqual(self.redmine.auth().firstname, 'John')
 def test_update_resource_with_uploads(self, mock_post, mock_put):
     mock_put.return_value = mock.Mock(status_code=200, content='')
     mock_post.return_value = response = mock.Mock(status_code=201)
     response.json = json_response({'upload': {'token': '123456'}})
     manager = self.redmine.issue
     manager.params['subject'] = 'Foo'
     self.assertEqual(
         manager.update(1, subject='Bar', uploads=[{
             'path': 'foo'
         }]), True)
     del manager.params['subject']
 def test_create_resource(self, mock_post):
     mock_post.return_value = response = mock.Mock(status_code=201)
     response.json = json_response(
         {'user': {
             'firstname': 'John',
             'lastname': 'Smith',
             'id': 1
         }})
     user = self.redmine.user.create(firstname='John', lastname='Smith')
     self.assertEqual(user.firstname, 'John')
     self.assertEqual(user.lastname, 'Smith')
 def test_total_count_mimic(self):
     response_with_custom_fields = {
         'project':
         dict(response['projects'][0],
              custom_fields=[{
                  'id': 1,
                  'value': 0
              }])
     }
     self.response.json = json_response(response_with_custom_fields)
     project = self.redmine.project.get('foo')
     self.assertEqual(project.custom_fields.total_count, 1)
 def test_get_single_resource(self, mock_get):
     mock_get.return_value = response = mock.Mock(status_code=200)
     response.json = json_response(
         {'project': {
             'name': 'Foo',
             'identifier': 'foo',
             'id': 1
         }})
     project = self.redmine.project.get('foo')
     self.assertEqual(project.name, 'Foo')
     self.assertEqual(project.identifier, 'foo')
     self.assertEqual(project.id, 1)
 def test_create_resource_with_uploads(self, mock_post):
     mock_post.return_value = response = mock.Mock(status_code=201)
     response.json = json_response({
         'upload': {
             'token': '123456'
         },
         'issue': {
             'subject': 'Foo',
             'project_id': 1,
             'id': 1
         }
     })
     issue = self.redmine.issue.create(project_id=1,
                                       subject='Foo',
                                       uploads=[{
                                           'path': 'foo'
                                       }])
     self.assertEqual(issue.project_id, 1)
     self.assertEqual(issue.subject, 'Foo')
Example #43
0
 def test_successful_file_upload(self):
     self.response.status_code = 201
     self.response.json = json_response({'upload': {'token': '123456'}})
     self.assertEqual(self.redmine.upload('foo'), '123456')
Example #44
0
 def test_successful_response_via_api_key(self):
     self.redmine.key = '123'
     self.response.status_code = 200
     self.response.json = json_response({'success': True})
     self.assertEqual(
         self.redmine.request('get', self.url)['success'], True)
Example #45
0
 def test_total_count(self):
     self.response.json = json_response(dict(response, total_count=3, limit=0, offset=0))
     projects = self.redmine.project.all()
     len(projects)
     self.assertEqual(projects.total_count, 3)