コード例 #1
0
 def test_resolve_posts_to_expected_url(self, mock_session, user_context,
                                        mock_get_all_cases_response_empty):
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.post.return_value = mock_get_all_cases_response_empty
     client.resolve("*****@*****.**")
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v1/departingemployee/resolve"
コード例 #2
0
    def test_update_posts_expected_data(self, mock_session, user_context,
                                        mock_get_case_details_function,
                                        mock_py42_response):
        client = DepartingEmployeeClient(mock_session, user_context)
        client.get_by_id.return_value = mock_py42_response
        mock_session.post.return_value = mock_get_case_details_function
        client.update(
            "697",
            None,
            "Display Name",
            "These are notes",
            24642747257,
            False,
            "EXFILTRATION_24_HOURS",
            ["*****@*****.**"],
        )

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert (posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
                and posted_data["caseId"] == "697"
                and posted_data["displayName"] == "Display Name"
                and posted_data["notes"] == "These are notes"
                and posted_data["departureDate"] == "2750-11-24T23:34:17.000Z"
                and posted_data["alertsEnabled"] == False
                and posted_data["status"] == "EXFILTRATION_24_HOURS"
                and posted_data["cloudUsernames"] == ["*****@*****.**"])
コード例 #3
0
    def test_create_posts_expected_data(self, mock_session, user_context,
                                        mock_get_all_cases_response):
        client = DepartingEmployeeClient(mock_session, user_context)
        # Return value should have been set based on the arguments passed
        # in create, here however as we are mocking it, it doesn't matter. Can be refactored
        mock_session.post.return_value = mock_get_all_cases_response
        client.create(
            "*****@*****.**",
            None,
            "These are notes",
            2352463246,
            True,
            ["*****@*****.**"],
        )

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert (posted_data["userName"] == "*****@*****.**"
                and posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
                and posted_data["notes"] == "These are notes"
                and posted_data["departureDate"] == "2044-07-18T14:00:46.000Z"
                and posted_data["alertsEnabled"] == True
                and posted_data["cloudUsernames"]
                == ["*****@*****.**"])
コード例 #4
0
    def test_add_posts_expected_data_and_to_expected_url(
        self,
        mock_session,
        user_context,
        mock_get_all_cases_response,
        mock_detection_list_user_client,
    ):
        client = DepartingEmployeeClient(
            mock_session, user_context, mock_detection_list_user_client
        )
        user_context.get_current_tenant_id.return_value = _TENANT_ID_PARAM
        # Return value should have been set based on the arguments passed
        # in add, here however as we are mocking it, it doesn't matter. Can be refactored
        mock_session.post.return_value = mock_get_all_cases_response
        client.add(_USER_ID, "2022-12-20")

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert (
            posted_data["userId"] == _USER_ID
            and posted_data["tenantId"] == _TENANT_ID_PARAM
            and posted_data["departureDate"] == "2022-12-20"
        )
        assert mock_session.post.call_args[0][0] == "/svc/api/v2/departingemployee/add"
        assert mock_session.post.call_count == 2
コード例 #5
0
 def test_get_by_username_posts_to_expected_url(
         self, mock_session, user_context, mock_get_all_cases_response):
     mock_session.post.return_value = mock_get_all_cases_response
     client = DepartingEmployeeClient(mock_session, user_context)
     client.get_by_username("*****@*****.**")
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v1/departingemployee/details"
コード例 #6
0
 def test_get_by_id_uses_given_tenant_id_over_current_id(
         self, mock_session, user_context, mock_get_all_cases_response):
     mock_session.post.return_value = mock_get_all_cases_response
     client = DepartingEmployeeClient(mock_session, user_context)
     client.get_by_id("999", _TENANT_ID_PARAM)
     post_call_args = json.loads(mock_session.post.call_args[1]["data"])
     assert post_call_args["tenantId"] == _TENANT_ID_PARAM
コード例 #7
0
 def test_get_page_posts_data_to_expected_url(
     self,
     mock_session,
     user_context,
     mock_get_all_cases_response,
     mock_detection_list_user_client,
 ):
     client = DepartingEmployeeClient(
         mock_session, user_context, mock_detection_list_user_client
     )
     client.get_page(
         filter_type="OPEN",
         sort_key="CREATED_AT",
         sort_direction="DESC",
         page_num=1,
         page_size=100,
     )
     mock_session.post.return_value = mock_get_all_cases_response
     first_call = mock_session.post.call_args_list[0]
     posted_data = json.loads(first_call[1]["data"])
     assert (
         posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
         and posted_data["pgSize"] == 100
         and posted_data["pgNum"] == 1
         and posted_data["filterType"] == "OPEN"
         and posted_data["srtKey"] == "CREATED_AT"
         and posted_data["srtDirection"] == "DESC"
     )
     assert (
         mock_session.post.call_args[0][0] == "/svc/api/v2/departingemployee/search"
     )
     assert mock_session.post.call_count == 1
コード例 #8
0
 def test_update_posts_to_expected_url(self, mock_session, user_context,
                                       mock_detection_list_user_client):
     client = DepartingEmployeeClient(mock_session, user_context,
                                      mock_detection_list_user_client)
     client.update_departure_date(_USER_ID, "2022-12-20")
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v2/departingemployee/update"
コード例 #9
0
 def test_get_by_id_posts_to_expected_url(
         self, mock_session, user_context,
         mock_get_all_cases_response_empty):
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.post.return_value = mock_get_all_cases_response_empty
     client.get_by_id("999")
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v1/departingemployee/details"
コード例 #10
0
 def test_toggle_alerts_posts_to_expected_url(
         self, mock_session, user_context,
         mock_get_all_cases_response_empty):
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.post.return_value = mock_get_all_cases_response_empty
     client.toggle_alerts()
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v1/departingemployee/togglealerts"
コード例 #11
0
 def test_toggle_alerts_uses_given_tenant_id_over_current_id(
         self, mock_session, user_context,
         mock_get_all_cases_response_empty):
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.post.return_value = mock_get_all_cases_response_empty
     client.toggle_alerts(_TENANT_ID_PARAM)
     post_call_args = json.loads(mock_session.post.call_args[1]["data"])
     assert post_call_args["tenantId"] == _TENANT_ID_PARAM
コード例 #12
0
 def test_get_all_posts_to_expected_url(self, mock_session, user_context,
                                        mock_get_all_cases_response):
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.post.return_value = mock_get_all_cases_response
     for _ in client.get_all():
         break
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v1/departingemployee/search"
コード例 #13
0
 def test_update_uses_given_tenant_id_over_current_id(
         self, mock_session, user_context, mock_get_case_details_function,
         mock_py42_response):
     client = DepartingEmployeeClient(mock_session, user_context)
     client.get_by_id.return_value = mock_py42_response
     mock_session.post.return_value = mock_get_case_details_function
     client.update("697", _TENANT_ID_PARAM)
     post_call_args = json.loads(mock_session.post.call_args[1]["data"])
     assert post_call_args["tenantId"] == _TENANT_ID_PARAM
コード例 #14
0
 def test_get_by_username_uses_given_tenant_id_over_current_id(
         self, mock_session, user_context, mock_get_all_cases_response):
     mock_session.post.return_value = mock_get_all_cases_response
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.get.return_value = mock_get_all_cases_response
     client.get_by_username("*****@*****.**", _TENANT_ID_PARAM)
     first_call = mock_session.post.call_args_list[0]
     post_call_args = json.loads(first_call[1]["data"])
     assert post_call_args["tenantId"] == _TENANT_ID_PARAM
コード例 #15
0
 def test_update_posts_to_expected_url(self, mock_session, user_context,
                                       mock_get_case_details_function,
                                       mock_py42_response):
     client = DepartingEmployeeClient(mock_session, user_context)
     client.get_by_id.return_value = mock_py42_response
     mock_session.post.return_value = mock_get_case_details_function
     client.update("697")
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v1/departingemployee/update"
コード例 #16
0
 def test_get_all_uses_given_tenant_id_over_current_id(
         self, mock_session, user_context, mock_get_all_cases_response):
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.post.return_value = mock_get_all_cases_response
     for _ in client.get_all(_TENANT_ID_PARAM):
         break
     first_call = mock_session.post.call_args_list[0]
     post_call_args = json.loads(first_call[1]["data"])
     assert post_call_args["tenantId"] == _TENANT_ID_PARAM
コード例 #17
0
    def test_resolve_posts_expected_data(self, mock_session, user_context,
                                         mock_get_all_cases_response_empty):
        client = DepartingEmployeeClient(mock_session, user_context)
        mock_session.post.return_value = mock_get_all_cases_response_empty
        client.resolve("999")

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert posted_data["caseId"] == "999" and posted_data[
            "tenantId"] == TENANT_ID_FROM_RESPONSE
コード例 #18
0
 def test_get_posts_to_expected_url(
     self,
     mock_session,
     user_context,
     mock_get_all_cases_response_empty,
     mock_detection_list_user_client,
 ):
     client = DepartingEmployeeClient(
         mock_session, user_context, mock_detection_list_user_client
     )
     mock_session.post.return_value = mock_get_all_cases_response_empty
     client.get("999")
     assert mock_session.post.call_args[0][0] == "/svc/api/v2/departingemployee/get"
コード例 #19
0
    def test_set_alerts_enabled_posts_expected_data(
        self,
        mock_session,
        user_context,
        mock_get_all_cases_response_empty,
        mock_detection_list_user_client,
    ):
        client = DepartingEmployeeClient(mock_session, user_context,
                                         mock_detection_list_user_client)
        mock_session.post.return_value = mock_get_all_cases_response_empty
        client.set_alerts_enabled()

        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert (posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
                and posted_data["alertsEnabled"] is True)
コード例 #20
0
ファイル: client_factories.py プロジェクト: Tryweirder/py42
 def get_departing_employee_client(self):
     if not self._departing_employee_client:
         self._departing_employee_client = DepartingEmployeeClient(
             self._get_ecm_session(),
             self._user_context,
             self.get_detection_list_user_client(),
         )
     return self._departing_employee_client
コード例 #21
0
 def test_get_all_calls_post_expected_number_of_times(
     self,
     mock_session,
     user_context,
     mock_get_all_cases_response,
     mock_get_all_cases_response_empty,
 ):
     mock_session.post.side_effect = [
         mock_get_all_cases_response,
         mock_get_all_cases_response,
         mock_get_all_cases_response_empty,
     ]
     client = DepartingEmployeeClient(mock_session, user_context)
     mock_session.get.return_value = mock_get_all_cases_response_empty
     for _ in client.get_all():
         pass
     assert mock_session.post.call_count == 1
コード例 #22
0
    def test_get_all_posts_expected_data(self, mock_session, user_context,
                                         mock_get_all_cases_response):
        client = DepartingEmployeeClient(mock_session, user_context)
        mock_session.post.return_value = mock_get_all_cases_response
        for _ in client.get_all(None, 235234626, "USERNAME", "ASC"):
            break

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        first_call = mock_session.post.call_args_list[0]
        posted_data = json.loads(first_call[1]["data"])
        assert (posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
                and posted_data["pgSize"] == 100 and posted_data["pgNum"] == 1
                and posted_data["departingOnOrAfter"]
                == "1977-06-15T14:57:06.000Z"
                and posted_data["srtKey"] == "USERNAME"
                and posted_data["srtDirection"] == "ASC")
コード例 #23
0
    def test_update_posts_expected_data(
        self,
        mock_session,
        user_context,
        mock_get_all_cases_response,
        mock_detection_list_user_client,
    ):
        client = DepartingEmployeeClient(mock_session, user_context,
                                         mock_detection_list_user_client)
        mock_session.post.return_value = mock_get_all_cases_response
        client.update_departure_date(_USER_ID, "2020-12-20")

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert (posted_data["userId"] == _USER_ID
                and posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
                and posted_data["departureDate"] == "2020-12-20")
コード例 #24
0
    def test_add_when_user_already_on_list_raises_user_already_added_error(
        self, mocker, mock_session, user_context, mock_detection_list_user_client
    ):
        def side_effect(url, data):
            if "add" in url:
                base_err = mocker.MagicMock(spec=HTTPError)
                base_err.response = mocker.MagicMock(spec=Response)
                base_err.response.text = "User already on list"
                raise Py42BadRequestError(base_err)

        mock_session.post.side_effect = side_effect
        client = DepartingEmployeeClient(
            mock_session, user_context, mock_detection_list_user_client
        )
        with pytest.raises(Py42UserAlreadyAddedError) as err:
            client.add("user_id")

        expected = "User with ID user_id is already on the departing-employee list."
        assert str(err.value) == expected
コード例 #25
0
    def test_remove_posts_expected_data_and_to_expected_url(
        self,
        mock_session,
        user_context,
        mock_get_all_cases_response_empty,
        mock_detection_list_user_client,
    ):
        client = DepartingEmployeeClient(mock_session, user_context,
                                         mock_detection_list_user_client)
        mock_session.post.return_value = mock_get_all_cases_response_empty
        client.remove("999")

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert posted_data["userId"] == "999" and posted_data[
            "tenantId"] == TENANT_ID_FROM_RESPONSE
        assert mock_session.post.call_args[0][
            0] == "/svc/api/v2/departingemployee/remove"
コード例 #26
0
 def get_departing_employee_client(self, user_client):
     if not self._departing_employee_client:
         if not self._ecm_session:
             self._ecm_session = self._get_jwt_session(
                 u"employeecasemanagement-API_URL")
         self._departing_employee_client = DepartingEmployeeClient(
             self._ecm_session,
             self._user_context,
             self.get_detection_list_user_client(user_client),
         )
     return self._departing_employee_client
コード例 #27
0
    def test_update_uses_current_data_when_not_provided(
            self, mock_session, user_context, mock_get_case_details_function,
            mock_py42_response):
        client = DepartingEmployeeClient(mock_session, user_context)
        client.get_by_id.return_value = mock_py42_response
        mock_session.post.return_value = mock_get_case_details_function
        client.update("20")

        # Have to convert the request data to a dict because
        # older versions of Python don't have deterministic order.
        posted_data = json.loads(mock_session.post.call_args[1]["data"])
        assert (posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
                and posted_data["caseId"] == "20"
                and posted_data["displayName"] == "Test Testerson"
                and posted_data["notes"] == "notes notes notes"
                and posted_data["departureDate"] == "2020-02-13"
                and posted_data["alertsEnabled"] == True
                and posted_data["status"] == "OPEN"
                and posted_data["cloudUsernames"]
                == ["*****@*****.**", "*****@*****.**"])
コード例 #28
0
 def test_get_all_uses_given_tenant_id_over_current_id(
     self,
     mock_session,
     user_context,
     mock_get_all_cases_response,
     mock_detection_list_user_client,
 ):
     client = DepartingEmployeeClient(mock_session, user_context,
                                      mock_detection_list_user_client)
     mock_session.post.return_value = mock_get_all_cases_response
     for _ in client.get_all():
         break
     first_call = mock_session.post.call_args_list[0]
     posted_data = json.loads(first_call[1]["data"])
     assert (posted_data["tenantId"] == TENANT_ID_FROM_RESPONSE
             and posted_data["pgSize"] == 100 and posted_data["pgNum"] == 1
             and posted_data["filterType"] == "OPEN"
             and posted_data["srtKey"] == "CREATED_AT"
             and posted_data["srtDirection"] == "DESC")
     assert mock_session.post.call_args[0][
         0] == "/svc/api/v2/departingemployee/search"
     assert mock_session.post.call_count == 1
コード例 #29
0
ファイル: client_factories.py プロジェクト: amoravec/py42
 def get_departing_employee_client(self):
     if not self._departing_employee_client:
         session = self._get_jwt_session(u"employeecasemanagement-API_URL")
         self._departing_employee_client = DepartingEmployeeClient(session, self._user_context)
     return self._departing_employee_client