def test_qm_usergroup_iterate_partial():
    with mock.patch("umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.side_effect = [MockResponse(200,
                                             [{"name": "n1", "type": "user-group"},
                                              {"name": "n2", "type": "user-group"}],
                                             {"X-Total-Count": "6",
                                              "X-Page-Count": "3",
                                              "X-Current-Page": "1",
                                              "X-Page-Size:": "2"}),
                                MockResponse(200,
                                             [{"name": "n1", "type": "user-group"},
                                              {"name": "n2", "type": "user-group"}],
                                             {"X-Total-Count": "6",
                                              "X-Page-Count": "3",
                                              "X-Current-Page": "2",
                                              "X-Page-Size:": "2"}),
                                MockResponse(400, text="400 bad request")]
        conn = Connection(**mock_connection_params)
        qm = QueryMultiple(conn, "user-group")
        for obj in qm:
            if obj["name"] == "n2":
                break
        for obj in qm:
            if obj["name"] == "n2":
                break
        pytest.raises(RequestError, qm.all_results)
def test_qm_user_reload():
    with mock.patch("umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.side_effect = [MockResponse(200, {"result": "success",
                                                   "lastPage": False,
                                                   "users": [{"name": "n1", "type": "user"},
                                                             {"name": "n2", "type": "user"}]}),
                                MockResponse(200, {"result": "success",
                                                   "lastPage": True,
                                                   "users": [{"name": "n3", "type": "user"},
                                                             {"name": "n4", "type": "user"}]}),
                                MockResponse(200, {"result": "success",
                                                   "lastPage": False,
                                                   "users": [{"name": "n5", "type": "user"},
                                                             {"name": "n6", "type": "user"}]}),
                                MockResponse(200, {"result": "success",
                                                   "lastPage": True,
                                                   "users": [{"name": "n7", "type": "user"},
                                                             {"name": "n8", "type": "user"}]})]
        conn = Connection(**mock_connection_params)
        qm = QueryMultiple(conn, "user")
        assert list(qm) == [{"name": "n1", "type": "user"},
                            {"name": "n2", "type": "user"},
                            {"name": "n3", "type": "user"},
                            {"name": "n4", "type": "user"}]
        qm.reload()
        assert qm.all_results() == [{"name": "n5", "type": "user"},
                                    {"name": "n6", "type": "user"},
                                    {"name": "n7", "type": "user"},
                                    {"name": "n8", "type": "user"}]
def test_qm_usergroup_iterate_complete():
    with mock.patch("umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.side_effect = [MockResponse(200,
                                             [{"name": "n1", "type": "user-group"},
                                              {"name": "n2", "type": "user-group"}],
                                             {"X-Total-Count": "4",
                                              "X-Page-Count": "2",
                                              "X-Current-Page": "1",
                                              "X-Page-Size:": "2"}),
                                MockResponse(200,
                                             [{"name": "n3", "type": "user-group"},
                                              {"name": "n4", "type": "user-group"}],
                                             {"X-Total-Count": "4",
                                              "X-Page-Count": "2",
                                              "X-Current-Page": "2",
                                              "X-Page-Size:": "2"})]
        conn = Connection(**mock_connection_params)
        qm = QueryMultiple(conn, "user-group")
        for obj in qm:
            if obj["name"] == "n3":
                break
        assert qm.all_results() == [{"name": "n1", "type": "user-group"},
                                    {"name": "n2", "type": "user-group"},
                                    {"name": "n3", "type": "user-group"},
                                    {"name": "n4", "type": "user-group"}]
Exemplo n.º 4
0
def test_execute_multiple_queued_throttle_actions_error():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.side_effect = [
            MockResponse(500),
            MockResponse(200, {"result": "success"}),
            MockResponse(200, {"result": "success"})
        ]
        conn = Connection(throttle_actions=2, **mock_connection_params)
        action0 = Action(top="top0").append(a="a0")
        action1 = Action(top="top1").append(a="a1")
        action2 = Action(top="top2").append(a="a2")
        action3 = Action(top="top3").append(a="a3")
        action4 = Action(top="top4").append(a="a4")
        action5 = Action(top="top5").append(a="a5")
        pytest.raises(BatchError,
                      conn.execute_multiple,
                      [action0, action1, action2, action3, action4, action5],
                      immediate=False)
        local_status, _ = conn.status(remote=False)
        assert local_status == {
            "multiple-query-count": 0,
            "single-query-count": 0,
            "actions-sent": 6,
            "actions-completed": 4,
            "actions-queued": 0
        }
Exemplo n.º 5
0
def test_qs_reload():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.side_effect = [
            MockResponse(
                200, {
                    "result": "success",
                    "user": {
                        "user": "******",
                        "type": "adobeID"
                    }
                }),
            MockResponse(
                200, {
                    "result": "success",
                    "user": {
                        "user": "******",
                        "type": "adobeID"
                    }
                })
        ]
        conn = Connection(**mock_connection_params)
        qs = QuerySingle(conn, "user", ["*****@*****.**"])
        assert qs.result() == {"user": "******", "type": "adobeID"}
        # second verse, same as the first
        assert qs.result() == {"user": "******", "type": "adobeID"}
        qs.reload()
        assert qs.result() == {"user": "******", "type": "adobeID"}
Exemplo n.º 6
0
def test_execute_multiple_single_queued_throttle_actions():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.side_effect = [
            MockResponse(200, {"result": "success"}),
            MockResponse(
                200, {
                    "result": "partial",
                    "completed": 1,
                    "notCompleted": 1,
                    "errors": [{
                        "index": 0,
                        "step": 0,
                        "errorCode": "test"
                    }]
                })
        ]
        conn = Connection(throttle_actions=2, **mock_connection_params)
        action0 = Action(top="top0").append(a="a0")
        action1 = Action(top="top1").append(a="a1")
        action2 = Action(top="top2").append(a="a2")
        action3 = Action(top="top3").append(a="a3")
        assert conn.execute_multiple([action0, action1, action2],
                                     immediate=False) == (1, 2, 2)
        local_status, server_status = conn.status(remote=False)
        assert server_status == {
            "status": "Never contacted",
            "endpoint": conn.endpoint
        }
        assert local_status == {
            "multiple-query-count": 0,
            "single-query-count": 0,
            "actions-sent": 2,
            "actions-completed": 2,
            "actions-queued": 1
        }
        assert conn.execute_single(action3) == (0, 2, 1)
        local_status, _ = conn.status(remote=False)
        assert local_status == {
            "multiple-query-count": 0,
            "single-query-count": 0,
            "actions-sent": 4,
            "actions-completed": 3,
            "actions-queued": 0
        }
        assert action0.execution_errors() == []
        assert action1.execution_errors() == []
        assert action2.execution_errors() == [{
            "command": {
                "a": "a2"
            },
            "target": {
                "top": "top2"
            },
            "errorCode": "test"
        }]
        assert action3.execution_errors() == []
Exemplo n.º 7
0
def test_qm_user_iterate_complete():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.side_effect = [
            MockResponse(
                200, {
                    "result":
                    "success",
                    "lastPage":
                    False,
                    "users": [{
                        "name": "n1",
                        "type": "user"
                    }, {
                        "name": "n2",
                        "type": "user"
                    }]
                }),
            MockResponse(
                200, {
                    "result":
                    "success",
                    "lastPage":
                    True,
                    "users": [{
                        "name": "n3",
                        "type": "user"
                    }, {
                        "name": "n4",
                        "type": "user"
                    }]
                })
        ]
        conn = Connection(**mock_connection_params)
        qm = QueryMultiple(conn, "user")
        for obj in qm:
            if obj["name"] == "n3":
                break
        assert qm.all_results() == [{
            "name": "n1",
            "type": "user"
        }, {
            "name": "n2",
            "type": "user"
        }, {
            "name": "n3",
            "type": "user"
        }, {
            "name": "n4",
            "type": "user"
        }]
Exemplo n.º 8
0
def test_query_multiple_user_paged():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.side_effect = [
            MockResponse(
                200, {
                    "result":
                    "success",
                    "lastPage":
                    False,
                    "users": [{
                        "name": "n1",
                        "type": "user"
                    }, {
                        "name": "n2",
                        "type": "user"
                    }]
                }),
            MockResponse(
                200, {
                    "result":
                    "success",
                    "lastPage":
                    True,
                    "users": [{
                        "name": "n3",
                        "type": "user"
                    }, {
                        "name": "n4",
                        "type": "user"
                    }]
                })
        ]
        conn = Connection(**mock_connection_params)
        assert conn.query_multiple("user", 0) == ([{
            "name": "n1",
            "type": "user"
        }, {
            "name": "n2",
            "type": "user"
        }], False, 0, 0, 1, 0)
        assert conn.query_multiple("user", 1) == ([{
            "name": "n3",
            "type": "user"
        }, {
            "name": "n4",
            "type": "user"
        }], True, 0, 0, 1, 0)
Exemplo n.º 9
0
 def test_get_jmx_unauthorized(self):
     requests.Session.get = MagicMock(return_value=MockResponse(
         _text='data',
         status_code=401,
     ))
     with self.assertRaises(UnauthorizedException):
         client.get_jmx(StreamSetsMock(), 'query_params_1')
Exemplo n.º 10
0
def test_query_multiple_user_success():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(
            200, {
                "result":
                "success",
                "lastPage":
                False,
                "users": [{
                    "name": "n1",
                    "type": "user"
                }, {
                    "name": "n2",
                    "type": "user"
                }]
            })
        conn = Connection(**mock_connection_params)
        assert conn.query_multiple("user") == ([{
            "name": "n1",
            "type": "user"
        }, {
            "name": "n2",
            "type": "user"
        }], False, 0, 0, 1, 0)
Exemplo n.º 11
0
def test_remote_status_failure():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(404, text="404 Not Found")
        conn = Connection(**mock_connection_params)
        _, remote_status = conn.status(remote=True)
        assert remote_status["status"].startswith("Unexpected")
Exemplo n.º 12
0
def test_post_request_fail():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(400,
                                              text="400 test request failure")
        conn = Connection(**mock_connection_params)
        pytest.raises(RequestError, conn.make_call, "", "[3, 5]")
Exemplo n.º 13
0
def test_get_server_fail():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(500,
                                             text="500 test server failure")
        conn = Connection(**mock_connection_params)
        pytest.raises(ServerError, conn.make_call, "")
Exemplo n.º 14
0
def test_post_retry_header_0():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(503,
                                              headers={"Retry-After": "0"})
        conn = Connection(**mock_connection_params)
        pytest.raises(UnavailableError, conn.make_call, "", "[3, 5]")
Exemplo n.º 15
0
def test_get_retry_header_time_2():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(
            502, headers={"Retry-After": formatdate(time.time() + 2.5)})
        conn = Connection(**mock_connection_params)
        pytest.raises(UnavailableError, conn.make_call, "")
Exemplo n.º 16
0
def test_qs_not_found():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(404, text="404 Object not found")
        conn = Connection(**mock_connection_params)
        qs = QuerySingle(conn, "user", ["*****@*****.**"])
        assert qs.result() == {}
Exemplo n.º 17
0
 def test_get_jmx_success(self):
     requests.Session.get = MagicMock(return_value=MockResponse(
         _text='data',
         status_code=200
     ))
     result = client.get_jmx(StreamSetsMock(), 'query_params_1')
     self.assertEqual(result, {'json': 'data'})
Exemplo n.º 18
0
def test_execute_single_success_immediate():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(200, {"result": "success"})
        conn = Connection(**mock_connection_params)
        action = Action(top="top").append(a="a")
        assert conn.execute_single(action, immediate=True) == (0, 1, 1)
Exemplo n.º 19
0
def test_execute_single_error_immediate_throttled():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(
            200, {
                "result": "partial",
                "completed": 1,
                "notCompleted": 1,
                "errors": [{
                    "index": 1,
                    "step": 0,
                    "errorCode": "test"
                }]
            })
        conn = Connection(throttle_commands=2, **mock_connection_params)
        action = Action(top="top0").append(a="a0").append(a="a1").append(
            a="a2")
        assert conn.execute_single(action, immediate=True) == (0, 2, 1)
        assert action.execution_errors() == [{
            "command": {
                "a": "a2"
            },
            "target": {
                "top": "top0"
            },
            "errorCode": "test"
        }]
Exemplo n.º 20
0
def test_execute_multiple_dofirst_error():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(
            200, {
                "result":
                "error",
                "completed":
                1,
                "notCompleted":
                1,
                "errors": [{
                    "index": 1,
                    "step": 1,
                    "errorCode": "test.error",
                    "message": "Test error message"
                }]
            })
        conn = Connection(**mock_connection_params)
        action0 = Action(top="top0").append(a="a0")
        action1 = Action(top="top1").append(a="a1").insert(b="b")
        assert conn.execute_multiple([action0, action1]) == (0, 2, 1)
        assert action0.execution_errors() == []
        assert action1.execution_errors() == [{
            "command": {
                "a": "a1"
            },
            "target": {
                "top": "top1"
            },
            "errorCode": "test.error",
            "message": "Test error message"
        }]
Exemplo n.º 21
0
def test_execute_single_dofirst_error_immediate():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(
            200, {
                "result":
                "error",
                "errors": [{
                    "index": 0,
                    "step": 0,
                    "errorCode": "test.error",
                    "message": "Test error message"
                }]
            })
        conn = Connection(**mock_connection_params)
        action = Action(top="top").insert(a="a")
        assert conn.execute_single(action, immediate=True) == (0, 1, 0)
        assert action.execution_errors() == [{
            "command": {
                "a": "a"
            },
            "target": {
                "top": "top"
            },
            "errorCode": "test.error",
            "message": "Test error message"
        }]
Exemplo n.º 22
0
def test_query_multiple_user_empty():
    with mock.patch("umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(200, {"result": "success",
                                                   "lastPage": True,
                                                   "users": []})
        conn = Connection(**mock_connection_params)
        assert conn.query_multiple("user") == ([], True)
Exemplo n.º 23
0
def test_qs_success():
    with mock.patch("umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(200, {"result": "success",
                                                   "user": {"user": "******", "type": "adobeID"}})
        conn = Connection(**mock_connection_params)
        qs = QuerySingle(conn, "user", ["*****@*****.**"])
        assert qs.result() == {"user": "******", "type": "adobeID"}
Exemplo n.º 24
0
def test_execute_single_success_queued():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(200, {"result": "success"})
        conn = Connection(throttle_actions=2, **mock_connection_params)
        action = Action(top="top").append(a="a")
        assert conn.execute_single(action) == (1, 0, 0)
        assert conn.execute_single(action) == (0, 2, 2)
Exemplo n.º 25
0
    def test_geocoding_by_place_name(self, client, mock_response):
        url = '/geocoding_by_place_name'
        response = client.get(url)
        assert response.status_code == 400  # we send the query with no parameters

        response = client.get(url+'?place_name=testing')
        assert response.status_code == 200
        assert json.loads(response.data) == MockResponse.json()
Exemplo n.º 26
0
def test_mock_proxy_get():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(200, body=["test", "body"])
        with mock.patch("umapi_client.connection.os.getenv") as mock_getenv:
            mock_getenv.return_value = "error"
            pytest.raises(ArgumentError, Connection, tuple(),
                          mock_connection_params)
Exemplo n.º 27
0
def test_execute_multiple_dofirst_success():
    with mock.patch(
            "umapi_client.connection.requests.Session.post") as mock_post:
        mock_post.return_value = MockResponse(200, {"result": "success"})
        conn = Connection(**mock_connection_params)
        action0 = Action(top="top0").append(a="a0").insert(b="b")
        action1 = Action(top="top1").append(a="a1")
        assert conn.execute_multiple([action0, action1]) == (0, 2, 2)
def test_mock_proxy_get():
    with mock.patch("umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(200, body=["test", "body"])
        with mock.patch("umapi_client.connection.os.getenv") as mock_getenv:
            mock_getenv.return_value = "proxy"
            conn = Connection(**mock_connection_params)
            conn.make_call("").json()
            mock_get.assert_called_with('http://test/', auth='N/A', timeout=120.0)
Exemplo n.º 29
0
def test_query_multiple_usergroup_paged():
    with mock.patch(
            "umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.side_effect = [
            MockResponse(
                200, [{
                    "name": "n1",
                    "type": "user-group"
                }, {
                    "name": "n2",
                    "type": "user-group"
                }], {
                    "X-Total-Count": "4",
                    "X-Page-Count": "2",
                    "X-Current-Page": "1",
                    "X-Page-Size": "2"
                }),
            MockResponse(
                200, [{
                    "name": "n3",
                    "type": "user-group"
                }, {
                    "name": "n4",
                    "type": "user-group"
                }], {
                    "X-Total-Count": "4",
                    "X-Page-Count": "2",
                    "X-Current-Page": "2",
                    "X-Page-Size": "2"
                })
        ]
        conn = Connection(**mock_connection_params)
        assert conn.query_multiple("user-group", 0) == ([{
            "name": "n1",
            "type": "user-group"
        }, {
            "name": "n2",
            "type": "user-group"
        }], False, 4, 2, 1, 2)
        assert conn.query_multiple("user-group", 1) == ([{
            "name": "n3",
            "type": "user-group"
        }, {
            "name": "n4",
            "type": "user-group"
        }], True, 4, 2, 2, 2)
def test_mock_playback_get():
    with mock.patch("umapi_client.connection.requests.Session.get") as mock_get:
        mock_get.return_value = MockResponse(200, body=["test", "body"])
        with mock.patch("umapi_client.connection.os.getenv") as mock_getenv:
            mock_getenv.return_value = "playback"
            conn = Connection(**mock_connection_params)
            conn.make_call("").json()
            assert mock_get.call_args[0][0] == 'http://test/'
            assert isinstance(mock_get.call_args[1]['auth'], Auth)