From eab66ddd613bb94158ce209cf2cd22ba1d55558b Mon Sep 17 00:00:00 2001 From: Nico Alt <nicoalt@posteo.org> Date: Sun, 7 Jun 2020 13:00:01 +0000 Subject: [PATCH] Add more tests for contacts --- briar_wrapper/models/contacts.py | 14 +++-- tests/briar_wrapper/models/test_contacts.py | 65 ++++++++++++++++++--- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/briar_wrapper/models/contacts.py b/briar_wrapper/models/contacts.py index b256a8c..9619c28 100644 --- a/briar_wrapper/models/contacts.py +++ b/briar_wrapper/models/contacts.py @@ -16,21 +16,23 @@ class Contacts(Model): API_ENDPOINT = "contacts/" - _on_contact_added_callback = None - def add_pending(self, link, alias): - url = urljoin(BASE_HTTP_URL, self.API_ENDPOINT + "add/" + "pending/") + url = urljoin(BASE_HTTP_URL, self.API_ENDPOINT + "add/pending/") _post(url, headers=self._headers, json={"link": link, "alias": alias}) def get(self): url = urljoin(BASE_HTTP_URL, self.API_ENDPOINT) request = _get(url, headers=self._headers) contacts = request.json() - contacts.sort(key=itemgetter("lastChatActivity"), - reverse=True) + contacts = Contacts._sort_contact_list(contacts) return contacts def get_link(self): - url = urljoin(BASE_HTTP_URL, self.API_ENDPOINT + "add/" + "link/") + url = urljoin(BASE_HTTP_URL, self.API_ENDPOINT + "add/link/") request = _get(url, headers=self._headers).json() return request['link'] + + def _sort_contact_list(contacts): + contacts.sort(key=itemgetter("lastChatActivity"), + reverse=True) + return contacts diff --git a/tests/briar_wrapper/models/test_contacts.py b/tests/briar_wrapper/models/test_contacts.py index f20ed4a..1bc9879 100644 --- a/tests/briar_wrapper/models/test_contacts.py +++ b/tests/briar_wrapper/models/test_contacts.py @@ -10,14 +10,32 @@ from briar_wrapper.models.contacts import Contacts BASE_HTTP_URL = "http://localhost:7000/v1/contacts/" -TEST_LINK = "briar://wvui4uvhbfv4tzo6xwngknebsxrafainnhldyfj63x6ipp4q2vigy" TEST_ALIAS = "Alice" +TEST_CONTACT_FIRST = { + "lastChatActivity": 1 +} +TEST_CONTACT_SECOND = { + "lastChatActivity": 2 +} +TEST_CONTACT_RESPONSE_SINGLE = [ + TEST_CONTACT_FIRST +] +TEST_CONTACT_RESPONSE_TWO_UNORDERED = [ + TEST_CONTACT_FIRST, + TEST_CONTACT_SECOND +] +TEST_CONTACT_RESPONSE_TWO_ORDERED = [ + TEST_CONTACT_SECOND, + TEST_CONTACT_FIRST +] + +TEST_LINK = "briar://wvui4uvhbfv4tzo6xwngknebsxrafainnhldyfj63x6ipp4q2vigy" + @requests_mock.Mocker(kw="requests_mock") def test_add_pending(api, request_headers, requests_mock): contacts = Contacts(api) - requests_mock.register_uri("POST", BASE_HTTP_URL + "add/pending/", request_headers=request_headers, @@ -25,15 +43,48 @@ def test_add_pending(api, request_headers, requests_mock): contacts.add_pending(TEST_LINK, TEST_ALIAS) +def match_request_add_pending(request): + return {"alias": TEST_ALIAS, "link": TEST_LINK} == request.json() + + +@requests_mock.Mocker(kw='requests_mock') +def test_get(api, request_headers, requests_mock): + contacts = Contacts(api) + requests_mock.register_uri("GET", BASE_HTTP_URL, + request_headers=request_headers, + text=json.dumps(TEST_CONTACT_RESPONSE_SINGLE)) + assert contacts.get() == TEST_CONTACT_RESPONSE_SINGLE + + @requests_mock.Mocker(kw='requests_mock') def test_get_empty(api, request_headers, requests_mock): contacts = Contacts(api) - response = [] + requests_mock.register_uri("GET", BASE_HTTP_URL, + request_headers=request_headers, + text=json.dumps([])) + assert contacts.get() == [] + +@requests_mock.Mocker(kw='requests_mock') +def test_get_unordered(api, request_headers, requests_mock): + contacts = Contacts(api) requests_mock.register_uri("GET", BASE_HTTP_URL, request_headers=request_headers, - text=json.dumps(response)) - assert contacts.get() == response + text=json.dumps( + TEST_CONTACT_RESPONSE_TWO_UNORDERED) + ) + assert contacts.get() == TEST_CONTACT_RESPONSE_TWO_ORDERED + + +@requests_mock.Mocker(kw='requests_mock') +def test_get_ordered(api, request_headers, requests_mock): + contacts = Contacts(api) + requests_mock.register_uri("GET", BASE_HTTP_URL, + request_headers=request_headers, + text=json.dumps( + TEST_CONTACT_RESPONSE_TWO_ORDERED) + ) + assert contacts.get() == TEST_CONTACT_RESPONSE_TWO_ORDERED @requests_mock.Mocker(kw='requests_mock') @@ -45,7 +96,3 @@ def test_get_link(api, request_headers, requests_mock): request_headers=request_headers, text=json.dumps(response)) assert contacts.get_link() == TEST_LINK - - -def match_request_add_pending(request): - return {"alias": TEST_ALIAS, "link": TEST_LINK} == request.json() -- GitLab