Example #1
0
    def test_execute(self):

        inputMap = {
            "Content-Type": "application/json",
            "a": 1,
            "b": "naman aggarwal %20",
            "id": 3
        }

        config = OperationConfig("/user/{a}", "list", ["Content-Type"], [])
        metadata = OperationMetadata("0.0.1",
                                     "https://sandbox.api.mastercard.com")

        with patch('mastercardapicore.core.controller.Config') as mock_config:
            #Set Authentication to None
            mock_config.getAuthentication.return_value = None

            with self.assertRaises(APIException):
                content = self.controller.execute(config, metadata, inputMap)

            #Set Authentication to some other object
            mock_config.getAuthentication.return_value = "stringobject"

            with self.assertRaises(APIException):
                content = self.controller.execute(config, metadata, inputMap)

        with patch(
                'mastercardapicore.core.controller.Session') as mock_session:
            response = Mock()
            response.content = "Some Content"
            response.status_code = 200
            mock_session().send.return_value = response
            content = self.controller.execute(config, metadata, inputMap)
	def getOperationMetadata(self):
		return OperationMetadata(ResourceConfig.getInstance().getVersion(), ResourceConfig.getInstance().getHost(), ResourceConfig.getInstance().getContext())
Example #3
0
 def getOperationMetadata(self):
     return OperationMetadata("0.0.1", "http://localhost:8081")
Example #4
0
    def test_environment(self):
        inputMap = []

        Config.setEnvironment(Environment.SANDBOX)
        resourceConfig = ResourceConfig()

        config = OperationConfig("/fraud/#env/v1/account-inquiry", "create",
                                 [], [])
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())

        #dafault
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())
        url = self.controller.getURL(config, metadata, inputMap)
        self.assertEqual(
            url, "https://sandbox.api.mastercard.com/fraud/v1/account-inquiry")

        #dafault
        Config.setEnvironment(Environment.PRODUCTION_MTF)
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())
        self.assertEqual(
            self.controller.getURL(config, metadata, inputMap),
            "https://api.mastercard.com/fraud/mtf/v1/account-inquiry")

        Config.setEnvironment(Environment.PRODUCTION_ITF)
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())
        self.assertEqual(
            self.controller.getURL(config, metadata, inputMap),
            "https://api.mastercard.com/fraud/itf/v1/account-inquiry")

        Config.setEnvironment(Environment.STAGE)
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())
        self.assertEqual(
            self.controller.getURL(config, metadata, inputMap),
            "https://stage.api.mastercard.com/fraud/v1/account-inquiry")

        Config.setEnvironment("")
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())
        self.assertEqual(
            self.controller.getURL(config, metadata, inputMap),
            "https://stage.api.mastercard.com/fraud/v1/account-inquiry")

        Config.setEnvironment(None)
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())
        self.assertEqual(
            self.controller.getURL(config, metadata, inputMap),
            "https://stage.api.mastercard.com/fraud/v1/account-inquiry")

        Config.setEnvironment(Environment.LOCALHOST)
        metadata = OperationMetadata("0.0.1", resourceConfig.getHost(),
                                     resourceConfig.getContext())
        self.assertEqual(self.controller.getURL(config, metadata, inputMap),
                         "http://localhost:8081/fraud/v1/account-inquiry")

        Config.clearResourceConfig()
Example #5
0
    def test_getRequestObject(self):

        defaultHeaders = {
            APIController.KEY_ACCEPT: APIController.APPLICATION_JSON,
            APIController.KEY_CONTENT_TYPE: APIController.APPLICATION_JSON,
            APIController.KEY_USER_AGENT: APIController.PYTHON_SDK + "/0.0.1"
        }

        inputMap = {
            "param1": 1,
            "param2": 2,
            "a": "1",
            APIController.KEY_ACCEPT: APIController.APPLICATION_JSON,
            APIController.KEY_CONTENT_TYPE: APIController.APPLICATION_JSON,
            APIController.KEY_USER_AGENT: APIController.PYTHON_SDK + "/0.0.1"
        }

        config = OperationConfig("/fraud/api/v1/account-inquiry", "create",
                                 ['Accept', 'Content-Type', 'User-Agent'],
                                 ["a"])
        metadata = OperationMetadata("0.0.1",
                                     "https://sandbox.api.mastercard.com")

        url = "https://sandbox.api.mastercard.com/fraud/api/v1/account-inquiry"

        Config.setAuthentication(None)

        #Create Request with inputMap
        request = self.controller.getRequestObject(config, metadata, inputMap)

        self.assertEqual(request.url, url)
        self.assertEqual(request.params, {
            APIController.KEY_FORMAT: APIController.JSON,
            "a": "1"
        })
        self.assertEqual(json.loads(request.data), inputMap)
        self.assertEqual(request.headers, defaultHeaders)

        inputMap = {"param1": 1, "param2": 2, "a": "1", "b": 2}

        config = OperationConfig("/fraud/api/v1/account-inquiry", "list",
                                 ['Accept', 'Content-Type', 'User-Agent'],
                                 ["a", "b"])

        #List Request with inputMap
        request = self.controller.getRequestObject(config, metadata, inputMap)

        self.assertEqual(request.params, {
            "param1": 1,
            "param2": 2,
            "a": "1",
            "b": 2,
            "Format": "JSON"
        })
        self.assertEqual(request.data, [])
        self.assertEqual(request.headers, defaultHeaders)
        self.assertEqual(request.url, url)

        inputMap = {"a": "1", "b": 2}

        #List Request with no inputMap
        request = self.controller.getRequestObject(config, metadata, inputMap)

        self.assertEqual(request.params, {"a": "1", "b": 2, "Format": "JSON"})
        self.assertEqual(request.data, [])
        self.assertEqual(request.headers, defaultHeaders)
        self.assertEqual(request.url, url)
Example #6
0
    def test_getURL(self):

        inputMap = {
            'api': 'lostandstolen',
            'version': 1,
            'three': 3,
            'four': 4,
            'five': 5
        }

        resourceConfig = ResourceConfig()
        config = OperationConfig("/fraud/{api}/v{version}/account-inquiry",
                                 "create", [], [])
        metadata = OperationMetadata("0.0.1",
                                     "https://sandbox.api.mastercard.com")

        url = self.controller.getURL(config, metadata, inputMap)

        #Normal URL
        self.assertEqual(
            url,
            "https://sandbox.api.mastercard.com/fraud/lostandstolen/v1/account-inquiry"
        )
        self.assertEqual(3, len(inputMap))

        inputMap = {
            'api': 'lostandstolen',
            'version': 1,
            'three': 3,
            'four': 4,
            'five': 5
        }

        #URL with trailing /
        config = OperationConfig("/fraud/{api}/v{version}/account-inquiry/",
                                 "create", [], [])

        url = self.controller.getURL(config, metadata, inputMap)
        self.assertEqual(
            url,
            "https://sandbox.api.mastercard.com/fraud/lostandstolen/v1/account-inquiry"
        )
        self.assertEqual(3, len(inputMap))

        inputMap = {'api': 'lostandstolen', 'version': 1, 'three': 3, 'id': 1}

        #URL with id and action delete
        config = OperationConfig(
            "/fraud/{api}/v{version}/account-inquiry/{id}", "delete", [], [])

        url = self.controller.getURL(config, metadata, inputMap)
        self.assertEqual(
            url,
            "https://sandbox.api.mastercard.com/fraud/lostandstolen/v1/account-inquiry/1"
        )
        self.assertEqual(1, len(inputMap))

        inputMap = {'api': 'lostandstolen', 'version': 1, 'three': 3, 'id': 1}

        #URL with id in inputMap but not in url
        config = OperationConfig("/fraud/{api}/v{version}/account-inquiry",
                                 "delete", [], [])

        url = self.controller.getURL(config, metadata, inputMap)
        self.assertEqual(
            url,
            "https://sandbox.api.mastercard.com/fraud/lostandstolen/v1/account-inquiry/1"
        )
        self.assertEqual(1, len(inputMap))

        inputMap = {'api': 'lostandstolen', 'version': 1, 'three': 3, 'id': 1}

        #URL with id in inputMap but not in url and method create
        config = OperationConfig("/fraud/{api}/v{version}/account-inquiry",
                                 "create", [], [])

        url = self.controller.getURL(config, metadata, inputMap)
        self.assertEqual(
            url,
            "https://sandbox.api.mastercard.com/fraud/lostandstolen/v1/account-inquiry"
        )
        self.assertEqual(2, len(inputMap))

        #Now that the key api and version are not there in map
        #This should raise a key error
        with self.assertRaises(KeyError):
            config = OperationConfig("/fraud/{api}/v{version}/account-inquiry",
                                     "create", [], [])

            url = self.controller.getURL(config, metadata, inputMap)
            print(url)
Example #7
0
 def getOperationMetadata(self):
     return OperationMetadata("0.0.1", "https://sandbox.api.mastercard.com")