def test_prev(self): client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector client.get(self.data_url) with patch.object(Client, 'get') as mock_get: self.assertEqual(client.prev(), None)
def test_last(self): client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector client.get(self.data_url) with patch.object(Client, 'get') as mock_get: client.last() mock_get.assert_called_with(self.nav_values['last'])
def test_load_last_page_in_history(self): client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector client.current_page = self.test_entry_point client.history.append(self.data_url) client.get(self.data_url) self.assertEqual(client.history, []) self.assertEqual(client.forward_stack, [self.test_entry_point])
def test_history_collected(self): client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector client.current_page = self.data_url # History won't be collected until our second page client.get(self.test_url) self.assertNotEqual(client.history, []) self.assertEqual(client.history[-1], self.data_url)
def test_get_makes_history(self): client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector # current page should be set to None until first request self.assertEqual(client.current_page, None) client.get(self.data_url) self.assertEqual(client.current_page, self.data_url) self.assertEqual(client.history, [])
def test_forward(self): client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector client.current_page = self.test_entry_point client.history.append(self.data_url) client.get(self.data_url) with patch.object(Client, 'get') as mock_get: client.forward() mock_get.assert_called_with(self.test_entry_point)
def test_client_pager(self): client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector client.get(self.data_url) self.assertNotEqual(client.pager, None) self.assertTrue(client.pager.navigable) self.assertEqual(client.pager.next, self.nav_values['next']) self.assertEqual(client.pager.prev, None) self.assertEqual(client.pager.first, self.nav_values['first']) self.assertEqual(client.pager.last, self.nav_values['last']) self.assertEqual(client.pager.current, self.nav_values['current'])
def test_get_no_result(self): client = Client(self.test_entry_point) mock_connector = Mock(**{'get.return_value': None}) client.connector = mock_connector result = client.get(self.data_url) self.assertEqual(result, None) self.assertEqual(client.document, None)
def test_delete(self): client = Client(self.test_entry_point) response = Mock(**{"json.return_value": self.home_values}) with patch.object(requests, 'get', return_value=response): client.gain_access('client-id', 'client-secret') document = client.get(self.data_url) item = NavigableDoc(document.items[5]) self.assertTrue(client.delete(item))
def test_query(self): # Repeat the three previous tests as end-to-end test client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_get = Mock(return_value=values) client.get = mock_get client.document = NavigableDoc(values) result = client.query('urn:collectiondoc:query:docs', params={'tag': 'sometag'}) self.assertTrue(result) self.assertEqual(len(client.document.items), 10) with self.assertRaises(BadQuery): client.query('urn:collectiondoc:query:docs', params={'badtag': 'sometag'})
def test_history_end2end(self): # Repeat the three previous tests as end-to-end test client = Client(self.test_entry_point) with open(self.data_doc, 'r') as jfile: values = json.loads(jfile.read()) mock_connector = Mock(**{'get.return_value': values}) client.connector = mock_connector # current page should be set to None until first request self.assertEqual(client.current_page, None) client.get(self.data_url) self.assertEqual(client.current_page, self.data_url) self.assertEqual(client.history, []) # History won't be collected until our second page client.get(self.test_url) self.assertNotEqual(client.history, []) self.assertEqual(client.history[-1], self.data_url) # History will empty if we request last page in history stack client.get(self.data_url) self.assertEqual(client.history, []) self.assertEqual(client.forward_stack, [self.test_url])
def test_get_without_connector_raise_no_auth_token(self): client = Client(self.test_url) with self.assertRaises(NoToken): client.get(self.test_url)