Example #1
0
    def test_fetch_from_date(self):
        """Test wether if fetches a set of issues from the given date"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 7, 27)

        redmine = Redmine(REDMINE_URL, api_token='AAAA',
                          max_issues=3)
        issues = [issue for issue in redmine.fetch(from_date=from_date)]

        self.assertEqual(len(issues), 1)

        issue = issues[0]
        self.assertEqual(issue['data']['id'], 7311)
        self.assertEqual(issue['uuid'], '4ab289ab60aee93a66e5490529799cf4a2b4d94c')
        self.assertEqual(issue['origin'], REDMINE_URL)
        self.assertEqual(issue['updated_on'], 1469607427.0)
        self.assertEqual(issue['category'], 'issue')
        self.assertEqual(issue['tag'], REDMINE_URL)
        self.assertEqual(issue['data']['author_data']['id'], 24)
        self.assertEqual(issue['data']['journals'][0]['user_data']['id'], 4)

        expected = [{
                     'key' : ['AAAA'],
                     'status_id' : ['*'],
                     'sort' : ['updated_on'],
                     'updated_on' : ['>=2016-07-27T00:00:00Z'],
                     'offset' : ['0'],
                     'limit' : ['3']
                    },
                    {
                     'key' : ['AAAA'],
                     'include' : ['attachments,changesets,children,journals,relations,watchers']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA'],
                     'status_id' : ['*'],
                     'sort' : ['updated_on'],
                     'updated_on' : ['>=2016-07-27T00:00:00Z'],
                     'offset' : ['3'],
                     'limit' : ['3']
                    }]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
Example #2
0
    def test_fetch_from_date(self):
        """Test wether if fetches a set of issues from the given date"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 7, 27)

        redmine = Redmine(REDMINE_URL, api_token='AAAA', max_issues=3)
        issues = [issue for issue in redmine.fetch(from_date=from_date)]

        self.assertEqual(len(issues), 1)

        issue = issues[0]
        self.assertEqual(issue['data']['id'], 7311)
        self.assertEqual(issue['uuid'],
                         '4ab289ab60aee93a66e5490529799cf4a2b4d94c')
        self.assertEqual(issue['origin'], REDMINE_URL)
        self.assertEqual(issue['updated_on'], 1469607427.0)
        self.assertEqual(issue['category'], 'issue')
        self.assertEqual(issue['tag'], REDMINE_URL)
        self.assertEqual(issue['data']['author_data']['id'], 24)
        self.assertEqual(issue['data']['journals'][0]['user_data']['id'], 4)

        expected = [{
            'key': ['AAAA'],
            'status_id': ['*'],
            'sort': ['updated_on'],
            'updated_on': ['>=2016-07-27T00:00:00Z'],
            'offset': ['0'],
            'limit': ['3']
        }, {
            'key': ['AAAA'],
            'include':
            ['attachments,changesets,children,journals,relations,watchers']
        }, {
            'key': ['AAAA']
        }, {
            'key': ['AAAA']
        }, {
            'key': ['AAAA']
        }, {
            'key': ['AAAA']
        }, {
            'key': ['AAAA'],
            'status_id': ['*'],
            'sort': ['updated_on'],
            'updated_on': ['>=2016-07-27T00:00:00Z'],
            'offset': ['3'],
            'limit': ['3']
        }]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
Example #3
0
    def test_fetch_from_cache(self):
        """Test whether the cache works"""

        http_requests = setup_http_server()

        # First, we fetch the issues from the server,
        # storing them in a cache
        cache = Cache(self.tmp_path)
        redmine = Redmine(REDMINE_URL,
                          api_token='AAAA',
                          max_issues=3,
                          cache=cache)

        issues = [issue for issue in redmine.fetch()]
        self.assertEqual(len(http_requests), 12)

        # Now, we get the issues from the cache.
        # The issues should be the same and there won't be
        # any new request to the server
        cached_issues = [issue for issue in redmine.fetch_from_cache()]
        self.assertEqual(len(cached_issues), len(issues))

        expected = [(9, '91a8349c2f6ebffcccc49409529c61cfd3825563',
                     1323367020.0, 3, 3),
                    (5, 'c4aeb9e77fec8e4679caa23d4012e7cc36ae8b98',
                     1323367075.0, 3, 3),
                    (2, '3c3d67925b108a37f88cc6663f7f7dd493fa818c',
                     1323367117.0, 3, 3),
                    (7311, '4ab289ab60aee93a66e5490529799cf4a2b4d94c',
                     1469607427.0, 24, 4)]

        self.assertEqual(len(cached_issues), len(expected))

        for x in range(len(cached_issues)):
            issue = cached_issues[x]
            expc = expected[x]
            self.assertEqual(issue['data']['id'], expc[0])
            self.assertEqual(issue['uuid'], expc[1])
            self.assertEqual(issue['origin'], REDMINE_URL)
            self.assertEqual(issue['updated_on'], expc[2])
            self.assertEqual(issue['category'], 'issue')
            self.assertEqual(issue['tag'], REDMINE_URL)
            self.assertEqual(issue['data']['author_data']['id'], expc[3])
            self.assertEqual(issue['data']['journals'][0]['user_data']['id'],
                             expc[4])
            self.assertDictEqual(issue['data'], issues[x]['data'])

        # The user 99 does not have information
        self.assertEqual(issues[3]['data']['journals'][1]['user']['id'], 99)
        self.assertDictEqual(issues[3]['data']['journals'][1]['user_data'], {})

        # No more requests were sent
        self.assertEqual(len(http_requests), 12)
Example #4
0
    def test_not_found_user(self):
        """Test if it works when a user is not found"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 7, 27)

        redmine = Redmine(REDMINE_URL, api_token='AAAA', max_issues=3)
        issues = [issue for issue in redmine.fetch(from_date=from_date)]

        self.assertEqual(len(issues), 1)

        # The user 99 does not have information
        self.assertEqual(issues[0]['data']['journals'][1]['user']['id'], 99)
        self.assertDictEqual(issues[0]['data']['journals'][1]['user_data'], {})
Example #5
0
    def test_not_found_user(self):
        """Test if it works when a user is not found"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2016, 7, 27)

        redmine = Redmine(REDMINE_URL, api_token='AAAA',
                          max_issues=3)
        issues = [issue for issue in redmine.fetch(from_date=from_date)]

        self.assertEqual(len(issues), 1)

        # The user 99 does not have information
        self.assertEqual(issues[0]['data']['journals'][1]['user']['id'], 99)
        self.assertDictEqual(issues[0]['data']['journals'][1]['user_data'], {})
Example #6
0
    def test_fetch_from_cache(self):
        """Test whether the cache works"""

        http_requests = setup_http_server()

        # First, we fetch the issues from the server,
        # storing them in a cache
        cache = Cache(self.tmp_path)
        redmine = Redmine(REDMINE_URL, api_token='AAAA',
                          max_issues=3, cache=cache)

        issues = [issue for issue in redmine.fetch()]
        self.assertEqual(len(http_requests), 12)

        # Now, we get the issues from the cache.
        # The issues should be the same and there won't be
        # any new request to the server
        cached_issues = [issue for issue in redmine.fetch_from_cache()]
        self.assertEqual(len(cached_issues), len(issues))

        expected = [(9, '91a8349c2f6ebffcccc49409529c61cfd3825563', 1323367020.0, 3, 3),
                    (5, 'c4aeb9e77fec8e4679caa23d4012e7cc36ae8b98', 1323367075.0, 3, 3),
                    (2, '3c3d67925b108a37f88cc6663f7f7dd493fa818c', 1323367117.0, 3, 3),
                    (7311, '4ab289ab60aee93a66e5490529799cf4a2b4d94c', 1469607427.0, 24, 4)]

        self.assertEqual(len(cached_issues), len(expected))

        for x in range(len(cached_issues)):
            issue = cached_issues[x]
            expc = expected[x]
            self.assertEqual(issue['data']['id'], expc[0])
            self.assertEqual(issue['uuid'], expc[1])
            self.assertEqual(issue['origin'], REDMINE_URL)
            self.assertEqual(issue['updated_on'], expc[2])
            self.assertEqual(issue['category'], 'issue')
            self.assertEqual(issue['tag'], REDMINE_URL)
            self.assertEqual(issue['data']['author_data']['id'], expc[3])
            self.assertEqual(issue['data']['journals'][0]['user_data']['id'], expc[4])
            self.assertDictEqual(issue['data'], issues[x]['data'])

        # The user 99 does not have information
        self.assertEqual(issues[3]['data']['journals'][1]['user']['id'], 99)
        self.assertDictEqual(issues[3]['data']['journals'][1]['user_data'], {})

        # No more requests were sent
        self.assertEqual(len(http_requests), 12)
Example #7
0
    def test_fetch_empty(self):
        """Test if nothing is returnerd when there are no issues"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2017, 1, 1)

        redmine = Redmine(REDMINE_URL, api_token='AAAA', max_issues=3)
        issues = [issue for issue in redmine.fetch(from_date=from_date)]

        self.assertEqual(len(issues), 0)

        expected = {
            'key': ['AAAA'],
            'status_id': ['*'],
            'sort': ['updated_on'],
            'updated_on': ['>=2017-01-01T00:00:00Z'],
            'offset': ['0'],
            'limit': ['3']
        }

        self.assertEqual(len(http_requests), 1)
        self.assertDictEqual(http_requests[0].querystring, expected)
Example #8
0
    def test_fetch_empty(self):
        """Test if nothing is returnerd when there are no issues"""

        http_requests = setup_http_server()

        from_date = datetime.datetime(2017, 1, 1)

        redmine = Redmine(REDMINE_URL, api_token='AAAA',
                          max_issues=3)
        issues = [issue for issue in redmine.fetch(from_date=from_date)]

        self.assertEqual(len(issues), 0)

        expected = {
                    'key' : ['AAAA'],
                    'status_id' : ['*'],
                    'sort' : ['updated_on'],
                    'updated_on' : ['>=2017-01-01T00:00:00Z'],
                    'offset' : ['0'],
                    'limit' : ['3']
                   }

        self.assertEqual(len(http_requests), 1)
        self.assertDictEqual(http_requests[0].querystring, expected)
Example #9
0
    def test_fetch(self):
        """Test whether it fetches a set of issues"""

        http_requests = setup_http_server()

        redmine = Redmine(REDMINE_URL, api_token='AAAA',
                          max_issues=3)
        issues = [issue for issue in redmine.fetch()]

        expected = [(9, '91a8349c2f6ebffcccc49409529c61cfd3825563', 1323367020.0, 3, 3),
                    (5, 'c4aeb9e77fec8e4679caa23d4012e7cc36ae8b98', 1323367075.0, 3, 3),
                    (2, '3c3d67925b108a37f88cc6663f7f7dd493fa818c', 1323367117.0, 3, 3),
                    (7311, '4ab289ab60aee93a66e5490529799cf4a2b4d94c', 1469607427.0, 24, 4)]

        self.assertEqual(len(issues), len(expected))

        for x in range(len(issues)):
            issue = issues[x]
            expc = expected[x]
            self.assertEqual(issue['data']['id'], expc[0])
            self.assertEqual(issue['uuid'], expc[1])
            self.assertEqual(issue['origin'], REDMINE_URL)
            self.assertEqual(issue['updated_on'], expc[2])
            self.assertEqual(issue['category'], 'issue')
            self.assertEqual(issue['tag'], REDMINE_URL)
            self.assertEqual(issue['data']['author_data']['id'], expc[3])
            self.assertEqual(issue['data']['journals'][0]['user_data']['id'], expc[4])

        # Check requests
        expected = [{
                     'key' : ['AAAA'],
                     'status_id' : ['*'],
                     'sort' : ['updated_on'],
                     'updated_on' : ['>=1970-01-01T00:00:00Z'],
                     'offset' : ['0'],
                     'limit' : ['3']
                    },
                    {
                     'key' : ['AAAA'],
                     'include' : ['attachments,changesets,children,journals,relations,watchers']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA'],
                     'include' : ['attachments,changesets,children,journals,relations,watchers']
                    },
                    {
                     'key' : ['AAAA'],
                     'include' : ['attachments,changesets,children,journals,relations,watchers']
                    },
                    {
                     'key' : ['AAAA'],
                     'status_id' : ['*'],
                     'sort' : ['updated_on'],
                     'updated_on' : ['>=1970-01-01T00:00:00Z'],
                     'offset' : ['3'],
                     'limit' : ['3']
                    },
                    {
                     'key' : ['AAAA'],
                     'include' : ['attachments,changesets,children,journals,relations,watchers']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA']
                    },
                    {
                     'key' : ['AAAA'],
                     'status_id' : ['*'],
                     'sort' : ['updated_on'],
                     'updated_on' : ['>=1970-01-01T00:00:00Z'],
                     'offset' : ['6'],
                     'limit' : ['3']
                    }]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])
Example #10
0
    def test_fetch(self):
        """Test whether it fetches a set of issues"""

        http_requests = setup_http_server()

        redmine = Redmine(REDMINE_URL, api_token='AAAA', max_issues=3)
        issues = [issue for issue in redmine.fetch()]

        expected = [
            (9, '91a8349c2f6ebffcccc49409529c61cfd3825563', 1323367020.0),
            (5, 'c4aeb9e77fec8e4679caa23d4012e7cc36ae8b98', 1323367075.0),
            (2, '3c3d67925b108a37f88cc6663f7f7dd493fa818c', 1323367117.0),
            (7311, '4ab289ab60aee93a66e5490529799cf4a2b4d94c', 1469607427.0)
        ]

        self.assertEqual(len(issues), len(expected))

        for x in range(len(issues)):
            issue = issues[x]
            expc = expected[x]
            self.assertEqual(issue['data']['id'], expc[0])
            self.assertEqual(issue['uuid'], expc[1])
            self.assertEqual(issue['origin'], REDMINE_URL)
            self.assertEqual(issue['updated_on'], expc[2])
            self.assertEqual(issue['category'], 'issue')
            self.assertEqual(issue['tag'], REDMINE_URL)

        # Check requests
        expected = [{
            'key': ['AAAA'],
            'status_id': ['*'],
            'sort': ['updated_on'],
            'updated_on': ['>=1970-01-01T00:00:00Z'],
            'offset': ['0'],
            'limit': ['3']
        }, {
            'key': ['AAAA'],
            'include':
            ['attachments,changesets,children,journals,relations,watchers']
        }, {
            'key': ['AAAA'],
            'include':
            ['attachments,changesets,children,journals,relations,watchers']
        }, {
            'key': ['AAAA'],
            'include':
            ['attachments,changesets,children,journals,relations,watchers']
        }, {
            'key': ['AAAA'],
            'status_id': ['*'],
            'sort': ['updated_on'],
            'updated_on': ['>=1970-01-01T00:00:00Z'],
            'offset': ['3'],
            'limit': ['3']
        }, {
            'key': ['AAAA'],
            'include':
            ['attachments,changesets,children,journals,relations,watchers']
        }, {
            'key': ['AAAA'],
            'status_id': ['*'],
            'sort': ['updated_on'],
            'updated_on': ['>=1970-01-01T00:00:00Z'],
            'offset': ['6'],
            'limit': ['3']
        }]

        self.assertEqual(len(http_requests), len(expected))

        for i in range(len(expected)):
            self.assertDictEqual(http_requests[i].querystring, expected[i])