def test_posts_with_pagination(self): """Test posts API call using pagination""" http_requests = setup_http_server() client = MattermostClient('https://mattermost.example.com/', 'aaaa', max_items=5) # Call API with parameters posts = client.posts('abcdefghijkl', page=1) expected = [{ 'page': ['1'], 'per_page': ['5'], }] self.assertEqual(len(http_requests), 1) for x in range(0, len(http_requests)): req = http_requests[x] self.assertEqual(req.method, 'GET') self.assertRegex(req.path, '/api/v4/channels/abcdefghijkl/posts') self.assertDictEqual(req.querystring, expected[x]) self.assertEqual(req.headers['Authorization'], 'Bearer aaaa')
def test_init(self): """Test initialization""" client = MattermostClient('https://mattermost.example.com/', 'aaaa') self.assertEqual(client.base_url, 'https://mattermost.example.com') self.assertEqual(client.api_token, 'aaaa') self.assertEqual(client.max_items, 60) self.assertFalse(client.sleep_for_rate) self.assertEqual(client.min_rate_to_sleep, 10) self.assertEqual(client.archive, None) self.assertFalse(client.from_archive) self.assertTrue(client.ssl_verify) client = MattermostClient('https://mattermost.example.com/', 'aaaa', max_items=5, sleep_for_rate=True, min_rate_to_sleep=5, sleep_time=3, ssl_verify=False) self.assertEqual(client.base_url, 'https://mattermost.example.com') self.assertEqual(client.api_token, 'aaaa') self.assertEqual(client.max_items, 5) self.assertTrue(client.sleep_for_rate) self.assertEqual(client.min_rate_to_sleep, 5) self.assertEqual(client.sleep_time, 3) self.assertFalse(client.ssl_verify)
def test_channel(self): """Test channel API call""" http_requests = setup_http_server() client = MattermostClient('https://mattermost.example.com/', 'aaaa') # Call API channel = client.channel('abcdefghijkl') self.assertEqual(len(http_requests), 1) expected = [ { 'channel_id': ['abcdefghijkl'] } ] self.assertEqual(len(http_requests), 1) for x in range(0, len(http_requests)): req = http_requests[x] self.assertEqual(req.method, 'GET') self.assertRegex(req.path, '/api/v4/channels/abcdefghijkl') self.assertDictEqual(req.querystring, expected[x]) self.assertEqual(req.headers['Authorization'], 'Bearer aaaa')
def test_calculate_time_to_reset(self): """Test whether the time to reset is zero if the sleep time is negative""" user = read_file('data/mattermost/mattermost_user_sduenas.json', 'rb') httpretty.register_uri(httpretty.GET, MATTERMOST_USER_SDUENAS, body=user, status=200, forcing_headers={ 'X-RateLimit-Remaining': '20', 'X-RateLimit-Reset': int(datetime_utcnow().replace(microsecond=0).timestamp()) }) client = MattermostClient('https://mattermost.example.com/', 'aaaa') _ = client.user('8tbwn7uikpdy3gpse6fgiie5co') time_to_reset = client.calculate_time_to_reset() self.assertEqual(time_to_reset, 0)
def test_user(self): """Test user API call""" http_requests = setup_http_server() client = MattermostClient('https://mattermost.example.com/', 'aaaa') # Call API user = client.user('8tbwn7uikpdy3gpse6fgiie5co') expected = [{}] self.assertEqual(len(http_requests), 1) for x in range(0, len(http_requests)): req = http_requests[x] self.assertEqual(req.method, 'GET') self.assertRegex(req.path, '/api/v4/users/8tbwn7uikpdy3gpse6fgiie5co') self.assertDictEqual(req.querystring, expected[x]) self.assertEqual(req.headers['Authorization'], 'Bearer aaaa')
def test_sanitize_for_archive(self): """Test whether the sanitize method works properly""" url = "http://example.com" headers = {MattermostClient.HAUTHORIZATION: 'Bearer aaaa'} c_headers = copy.deepcopy(headers) payload = {} san_u, san_h, san_p = MattermostClient.sanitize_for_archive(url, c_headers, payload) headers.pop(MattermostClient.HAUTHORIZATION) self.assertEqual(url, san_u) self.assertEqual(headers, san_h) self.assertEqual(payload, san_p)