/
config_test.py
87 lines (75 loc) · 3.04 KB
/
config_test.py
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import json
import unittest
import tempfile
import transcriptic.config
try:
from unittest.mock import Mock
except ImportError:
from mock import Mock
class ConnectionInitTests(unittest.TestCase):
def test_inits_valid(self):
with tempfile.NamedTemporaryFile() as config_file:
with open(config_file.name, 'w') as f:
json.dump(
{
"email": "somebody@transcriptic.com",
"token": "foobarinvalid",
"organization_id": "transcriptic",
"api_root": "http://foo:5555",
"analytics": True,
"user_id": "ufoo2",
"feature_groups": [
"can_submit_autoprotocol",
"can_upload_packages"
]
},
f
)
transcriptic.config.Connection.from_file(config_file.name)
def test_inits_invalid(self):
with tempfile.NamedTemporaryFile() as config_file:
with open(config_file.name, 'w') as f:
json.dump(
{
"email": "somebody@transcriptic.com",
# "token": "foobarinvalid", (missing token)
"organization_id": "transcriptic",
"api_root": "http://foo:5555",
"analytics": True,
"user_id": "ufoo2",
"feature_groups": [
"can_submit_autoprotocol",
"can_upload_packages"
]
},
f
)
# TODO(meawoppl) - assertRaisesRegexp deprecated in py3
# Move it to assertRaisesRegex()
with self.assertRaisesRegexp(OSError, "token"):
transcriptic.config.Connection.from_file(config_file.name)
def get_mocked_connection(self):
# NOTE(meawoppl) - This could be the start of a testing pattern
# for this module.
class FakeReturn:
status_code = 200
def json(self):
return {}
session = transcriptic.config.initialize_default_session()
session.put = Mock(return_value=FakeReturn())
connection = transcriptic.config.Connection(
email="foo@transcriptic.com",
token="bar",
organization_id="txid",
api_root="https://fake.transcriptic.com",
session=session
)
return session, connection
def test_aliquot_modify(self):
session, connection = self.get_mocked_connection()
aliquot_id = "23534245"
props = {"prop1": "val1"}
connection.modify_aliquot_properties(aliquot_id, props)
session.put.assert_called_with(
'https://fake.transcriptic.com/api/aliquots/23534245/modify_properties',
json={"id": aliquot_id, "data": {"delete": [], "set": props}})