client.py
2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import string
import unittest
from random import choice
from floraconcierge import errors
from floraconcierge.client import ApiClient
from floraconcierge.mapping import Collection
from floraconcierge.mapping.model import Language
class TestOne(unittest.TestCase):
def setUp(self):
self.__api_id = 1
self.__api_secret = 'ihaidhsuihi1uhiu12h3h12qd123'
self.client = ApiClient(self.__api_id, self.__api_secret)
self.client.debug = True
self.client.api_endpoint = 'http://api.floraconcierge.loc/v1/'
def _test_data(self):
return dict(
user_id=10,
username='test',
password='password',
firstname="Steve",
lastname="Jobs"
), '8a5532e59eea6ed0874f2e530595c042ba1320d2'
def _random_string(self, len):
return "".join(choice(string.ascii_letters + string.digits) for _ in range(len))
def test_signature(self):
data, signature = self._test_data()
self.assertEqual(self.client.sign(**data), signature)
def test_signature_extra(self):
data, signature = self._test_data()
for i in range(0, 5):
data['_' + self._random_string(5)] = self._random_string(15)
self.assertEqual(self.client.sign(**data), signature)
def test_api_call_bad_get(self):
self.assertRaises(AssertionError, self.client.call, 'null', 'dict required')
def test_api_call_bad_post(self):
self.assertRaises(AssertionError, self.client.call, 'null', None, 'dict required')
def test_api_call_bad_func(self):
self.assertRaises(errors.ResultApiNotFoundError, self.client.call, 'bad/function/name')
def test_api_call_checkip(self):
self.assertEqual(self.client.call('geo/useripinfo').ip, '127.0.0.1')
def test_api_call_languages(self):
self.assertIsInstance(self.client.services.system.get_languages_list(), Collection)
def test_api_call_language_ru(self):
lang = self.client.services.system.get_language_by_id('ru')
self.assertIsInstance(lang, Language)
self.assertEqual(lang.iso, 'ru')
def test_api_call_x(self):
self.assertEqual(self.client.services.geo.get_city_by_id(2800).slug, 'moscow')