def test_normal_mode(self, client): client.delete.return_value = Response(204, "") t = table.TableClient(client) t.delete_record("my_table", dict(sys_id="id"), False) client.delete.assert_called_with("api/now/table/my_table/id")
def test_pagination(self, client): client.get.side_effect = ( Response(200, '{"result": [{"a": 3, "b": "sys_id"}]}', {"X-Total-Count": "2"}), Response(200, '{"result": [{"a": 2, "b": "sys_ie"}]}', {"X-Total-Count": "2"}), ) t = table.TableClient(client, batch_size=1) records = t.list_records("my_table") assert [dict(a=3, b="sys_id"), dict(a=2, b="sys_ie")] == records assert 2 == len(client.get.mock_calls) client.get.assert_any_call( "api/now/table/my_table", query=dict(sysparm_exclude_reference_link="true", sysparm_limit=1, sysparm_offset=0), ) client.get.assert_any_call( "api/now/table/my_table", query=dict(sysparm_exclude_reference_link="true", sysparm_limit=1, sysparm_offset=1), )
def test_check_mode(self, client): client.delete.return_value = Response(204, "") t = table.TableClient(client) t.delete_record("my_table", dict(sys_id="id"), True) client.delete.assert_not_called()
def test_multiple_matches(self, client): client.get.return_value = Response(200, '{"result": [{"a": 3}, {"b": 4}]}') t = table.TableClient(client) with pytest.raises(errors.ServiceNowError, match="2"): t.get_record("my_table", dict(our="query"))
def test_zero_matches_fail(self, client): client.get.return_value = Response(200, '{"result": []}', {"X-Total-Count": "0"}) t = table.TableClient(client) with pytest.raises(errors.ServiceNowError, match="No"): t.get_record("my_table", dict(our="query"), must_exist=True)
def test_non_empty_response(self, client): client.get.return_value = Response( 200, '{"result": [{"a": 3, "b": "sys_id"}]}') t = table.TableClient(client) records = t.list_records("my_table") assert [dict(a=3, b="sys_id")] == records
def test_check_mode(self, client): client.post.return_value = Response( 201, '{"result": {"a": 3, "b": "sys_id"}}') t = table.TableClient(client) record = t.create_record("my_table", dict(a=4), True) assert dict(a=4) == record client.post.assert_not_called()
def test_query_passing(self, client): client.get.return_value = Response(200, '{"result": []}') t = table.TableClient(client) t.list_records("my_table", dict(a="b")) client.get.assert_called_with( "table/my_table", query=dict(sysparm_exclude_reference_link="true", a="b"))
def test_empty_response(self, client): client.get.return_value = Response(200, '{"result": []}') t = table.TableClient(client) records = t.list_records("my_table") assert [] == records client.get.assert_called_with( "table/my_table", query=dict(sysparm_exclude_reference_link="true"))
def test_single_match(self, client): client.get.return_value = Response( 200, '{"result": [{"a": 3, "b": "sys_id"}]}') t = table.TableClient(client) record = t.get_record("my_table", dict(our="query")) assert dict(a=3, b="sys_id") == record client.get.assert_called_with( "table/my_table", query=dict(sysparm_exclude_reference_link="true", our="query"), )
def test_normal_mode(self, client): client.post.return_value = Response( 201, '{"result": {"a": 3, "b": "sys_id"}}') t = table.TableClient(client) record = t.create_record("my_table", dict(a=4), False) assert dict(a=3, b="sys_id") == record client.post.assert_called_with( "api/now/table/my_table", dict(a=4), query=dict(sysparm_exclude_reference_link="true"), )
def test_query_passing(self, client): client.get.return_value = Response(200, '{"result": []}', {"X-Total-Count": "0"}) t = table.TableClient(client) t.list_records("my_table", dict(a="b")) client.get.assert_called_once_with( "api/now/table/my_table", query=dict( sysparm_exclude_reference_link="true", a="b", sysparm_limit=1000, sysparm_offset=0, ), )
def test_single_match(self, client): client.get.return_value = Response( 200, '{"result": [{"a": 3, "b": "sys_id"}]}', {"X-Total-Count": "1"}) t = table.TableClient(client) record = t.get_record("my_table", dict(our="query")) assert dict(a=3, b="sys_id") == record client.get.assert_called_with( "api/now/table/my_table", query=dict( sysparm_exclude_reference_link="true", our="query", sysparm_limit=1000, sysparm_offset=0, ), )
def test_zero_matches(self, client): client.get.return_value = Response(200, '{"result": []}', {"X-Total-Count": "0"}) t = table.TableClient(client) assert t.get_record("my_table", dict(our="query")) is None