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()
Exemplo n.º 4
0
    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)
Exemplo n.º 6
0
    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()
Exemplo n.º 8
0
    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"))
Exemplo n.º 9
0
    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"))
Exemplo n.º 10
0
    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