def _artifact_handler(key, value): """Replaces artifact name with actual artifact json""" if key == "artifact": artifact_filename = "{}.json".format(value) if artifact_filename not in artifact_list: return value return read_json_file(artifact_folder, artifact_filename) return value
def setup_mock(response_key, responses, status=200): """Sets up mock response for Delivery API call""" filename = MOCK_RESPONSES.get(response_key) if not filename: return data = read_json_file(CURRENT_DIR, filename) responses.add("POST", "/rest/v1/delivery", body=json.dumps(data), status=status, content_type="application/json")
def get_test_suites(test_suite_name, exclude_suites): """Retrieves and hydrates all artifacts. Filters by test suite if test_suite_name provided""" artifacts = list(get_test_artifacts()) test_models = get_test_models() def _matches_test_suite_name(filename): """Checks if filename matches test_suite_name""" return True if not test_suite_name else filename == "{}.json".format( test_suite_name) hydrated_artifacts = [] for test_model_file_name in test_models: if not _matches_test_suite_name( test_model_file_name ) or test_model_file_name in exclude_suites: continue suite = read_json_file(TEST_MODELS_FOLDER, test_model_file_name) hydrated_artifacts.append( _hydrate_artifacts(TEST_ARTIFACTS_FOLDER, artifacts, suite)) return hydrated_artifacts
import os import unittest from urllib3 import HTTPResponse from delivery_api_client import DeliveryApi from target_decisioning_engine.constants import OK from target_decisioning_engine.constants import PARTIAL_CONTENT from target_python_sdk import TargetClient from target_tools.enums import DecisioningMethod from target_tools.messages import DECISIONING_ENGINE_NOT_READY from target_tools.tests.delivery_request_setup import create_delivery_request from target_tools.tests.delivery_response_setup import create_delivery_response from target_tools.tests.helpers import read_json_file ARTIFACT_FEATURE_FLAG_FILE = "../../target_decisioning_engine/tests/schema/artifacts/TEST_ARTIFACT_FEATURE_FLAG.json" CURRENT_DIR = os.path.dirname(__file__) FEATURE_FLAG_ARTIFACT = read_json_file(CURRENT_DIR, ARTIFACT_FEATURE_FLAG_FILE) CONFIG = { "client": "someClientId", "organization_id": "someOrgId", "target_location_hint": "28", "polling_interval": 0, "maximum_wait_ready": 500, "telemetry_enabled": False } context = { "channel": "web", "address": { "url": "http://adobe.com"
import json import os import unittest from copy import deepcopy from urllib3 import HTTPResponse from delivery_api_client import Geo from target_decisioning_engine.geo_provider import create_or_update_geo_object from target_decisioning_engine.geo_provider import GeoProvider from target_decisioning_engine.types.decisioning_config import DecisioningConfig from target_decisioning_engine.constants import HTTP_HEADER_FORWARDED_FOR from target_decisioning_engine.constants import BAD_REQUEST from target_decisioning_engine.constants import OK from target_tools.tests.helpers import read_json_file CURRENT_DIR = os.path.dirname(__file__) ARTIFACT_BLANK = read_json_file(CURRENT_DIR, "schema/artifacts/TEST_ARTIFACT_BLANK.json") class TestGeoProvider(unittest.TestCase): """TestGeoProvider""" def setUp(self): self.headers = { "x-geo-latitude": 37.773972, "x-geo-longitude": -122.431297, "x-geo-country-code": "US", "x-geo-region-code": "CA", "x-geo-city": "SANFRANCISCO" } self.config = DecisioningConfig("myClient", "myOrgId") geo_values = { "x-geo-longitude": -122.4,
from delivery_api_client import DeliveryApi from target_python_sdk import TargetClient from target_tools.tests.helpers import expect_to_match_object from target_tools.messages import DECISIONING_ENGINE_NOT_READY from target_tools.tests.delivery_response_setup import create_delivery_response from target_tools.utils import to_dict from target_tools.enums import DecisioningMethod from target_tools.tests.delivery_request_setup import create_delivery_request from target_tools.tests.helpers import read_json_file from target_decisioning_engine.constants import OK ARTIFACT_AB_SIMPLE_FILE = "../../target_decisioning_engine/tests/schema/artifacts/TEST_ARTIFACT_AB_SIMPLE.json" ARTIFACT_BLANK_FILE = "../../target_decisioning_engine/tests/schema/artifacts/TEST_ARTIFACT_BLANK.json" CURRENT_DIR = os.path.dirname(__file__) ARTIFACT_AB_SIMPLE = read_json_file(CURRENT_DIR, ARTIFACT_AB_SIMPLE_FILE) ARTIFACT_BLANK = read_json_file(CURRENT_DIR, ARTIFACT_BLANK_FILE) TARGET_REQUEST = create_delivery_request({ "prefetch": { "mboxes": [{ "name": "mbox-something", "index": 1 }] } }) REQUEST_BASE = { "id": { "tntId": "338e3c1e51f7416a8e1ccba4f81acea0.28_0", "marketingCloudVisitorId": "07327024324407615852294135870030620007"
import os from copy import deepcopy from urllib3 import PoolManager, HTTPResponse from target_decisioning_engine import TargetDecisioningEngine from target_decisioning_engine import SUPPORTED_ARTIFACT_MAJOR_VERSION from target_decisioning_engine import MESSAGES from target_decisioning_engine.types.decisioning_config import DecisioningConfig from target_decisioning_engine.events import ARTIFACT_DOWNLOAD_FAILED from target_decisioning_engine.types.target_delivery_request import TargetDeliveryRequest from target_tools.tests.delivery_request_setup import create_delivery_request from target_tools.tests.helpers import read_json_file CURRENT_DIR = os.path.dirname(__file__) ARTIFACT_BLANK = read_json_file(CURRENT_DIR, "schema/artifacts/TEST_ARTIFACT_BLANK.json") ARTIFACT_UNSUPPORTED_VERSION = read_json_file( CURRENT_DIR, "schema/artifacts/TEST_ARTIFACT_UNSUPPORTED.json") TARGET_REQUEST = create_delivery_request({ "context": { "channel": "web", "address": { "url": "http://local-target-test:8080/" }, "userAgent": "Mozilla/5.0 (Macintosh Intel Mac OS X 10.15 rv:73.0) Gecko/20100101 Firefox/73.0" }, "prefetch": { "mboxes": [{