|
6 | 6 | TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), 'assets') |
7 | 7 |
|
8 | 8 | SERVER_INFO_GET_XML = os.path.join(TEST_ASSET_DIR, 'server_info_get.xml') |
| 9 | +SERVER_INFO_404 = os.path.join(TEST_ASSET_DIR, 'server_info_404.xml') |
| 10 | +SERVER_INFO_AUTH_INFO_XML = os.path.join(TEST_ASSET_DIR, 'server_info_auth_info.xml') |
9 | 11 |
|
10 | 12 |
|
11 | 13 | class ServerInfoTests(unittest.TestCase): |
12 | 14 | def setUp(self): |
13 | 15 | self.server = TSC.Server('http://test') |
14 | | - self.server.version = '2.4' |
15 | 16 | self.baseurl = self.server.server_info.baseurl |
16 | 17 |
|
17 | 18 | def test_server_info_get(self): |
18 | 19 | with open(SERVER_INFO_GET_XML, 'rb') as f: |
19 | 20 | response_xml = f.read().decode('utf-8') |
20 | 21 | with requests_mock.mock() as m: |
21 | | - m.get(self.baseurl, text=response_xml) |
| 22 | + self.server.version = '2.4' |
| 23 | + m.get(self.server.server_info.baseurl, text=response_xml) |
22 | 24 | actual = self.server.server_info.get() |
23 | 25 |
|
24 | 26 | self.assertEqual('10.1.0', actual.product_version) |
25 | 27 | self.assertEqual('10100.16.1024.2100', actual.build_number) |
26 | 28 | self.assertEqual('2.4', actual.rest_api_version) |
| 29 | + |
| 30 | + def test_server_info_use_highest_version_downgrades(self): |
| 31 | + with open(SERVER_INFO_AUTH_INFO_XML, 'rb') as f: |
| 32 | + # This is the auth.xml endpoint present back to 9.0 Servers |
| 33 | + auth_response_xml = f.read().decode('utf-8') |
| 34 | + with open(SERVER_INFO_404, 'rb') as f: |
| 35 | + # 10.1 serverInfo response |
| 36 | + si_response_xml = f.read().decode('utf-8') |
| 37 | + with requests_mock.mock() as m: |
| 38 | + # Return a 404 for serverInfo so we can pretend this is an old Server |
| 39 | + m.get(self.server.server_address + "/api/2.4/serverInfo", text=si_response_xml, status_code=404) |
| 40 | + m.get(self.server.server_address + "/auth?format=xml", text=auth_response_xml) |
| 41 | + self.server.use_highest_version() |
| 42 | + self.assertEqual(self.server.version, '2.2') |
| 43 | + |
| 44 | + def test_server_info_use_highest_version_upgrades(self): |
| 45 | + with open(SERVER_INFO_GET_XML, 'rb') as f: |
| 46 | + si_response_xml = f.read().decode('utf-8') |
| 47 | + with requests_mock.mock() as m: |
| 48 | + m.get(self.server.server_address + "/api/2.4/serverInfo", text=si_response_xml) |
| 49 | + # Pretend we're old |
| 50 | + self.server.version = '2.0' |
| 51 | + self.server.use_highest_version() |
| 52 | + # Did we upgrade to 2.4? |
| 53 | + self.assertEqual(self.server.version, '2.4') |
0 commit comments