def test_construct_from_properties_with_metadata(self):
        """Tests that constructing a communicator configuration
        using integrator and shopping cart data constructs properly
        """
        self.config.set("ConnectSDK", "connect.api.integrator",
                        "Ingenico.Integrator")
        self.config.set("ConnectSDK",
                        "connect.api.shoppingCartExtension.creator",
                        "Ingenico.Creator")
        self.config.set("ConnectSDK", "connect.api.shoppingCartExtension.name",
                        "Ingenico.ShoppingCarts")
        self.config.set("ConnectSDK",
                        "connect.api.shoppingCartExtension.version", "1.0")
        self.config.set("ConnectSDK",
                        "connect.api.shoppingCartExtension.extensionId",
                        "ExtensionId")

        communicator_config = CommunicatorConfiguration(self.config)

        self.assertDefaults(communicator_config)
        self.assertIsNone(communicator_config.api_key_id)
        self.assertIsNone(communicator_config.secret_api_key)
        self.assertIsNone(communicator_config.proxy_configuration)
        self.assertEqual("Ingenico.Integrator", communicator_config.integrator)
        self.assertIsNotNone(communicator_config.shopping_cart_extension)
        self.assertEqual("Ingenico.Creator",
                         communicator_config.shopping_cart_extension.creator)
        self.assertEqual("Ingenico.ShoppingCarts",
                         communicator_config.shopping_cart_extension.name)
        self.assertEqual("1.0",
                         communicator_config.shopping_cart_extension.version)
        self.assertEqual(
            "ExtensionId",
            communicator_config.shopping_cart_extension.extension_id)
    def test_construct_from_properties_with_host_and_scheme(self):
        """Tests that constructing a communicator configuration from a host and port correctly processes this info"""
        self.config.set("ConnectSDK", "connect.api.endpoint.scheme", "http")

        communicator_config = CommunicatorConfiguration(self.config)

        self.assertEqual("http://eu.sandbox.api-ingenico.com", communicator_config.api_endpoint.geturl())
コード例 #3
0
    def test_construct_from_properties_with_host_and_port(self):
        """Tests that constructing a communicator configuration from a host and port correctly processes this info"""

        self.config.set("ConnectSDK", "connect.api.endpoint.port", "8443")

        communicator_config = CommunicatorConfiguration(self.config)

        self.assertEqual("https://api-sandbox.globalcollect.com:8443", communicator_config.api_endpoint.geturl())
    def assertDefaults(self, communicator_config):
        """Tests commonly used settings for testing url, authorization type, timeouts and max_connections"""
        #                                                           this argument should not be needed    VV
        self.assertEqual("https://eu.sandbox.api-ingenico.com", communicator_config.api_endpoint.geturl())
        self.assertEqual(AuthorizationType.get_authorization("v1HMAC"), communicator_config.authorization_type)
        self.assertEqual(20, communicator_config.connect_timeout)
        self.assertEqual(10, communicator_config.socket_timeout)

        self.assertEqual(CommunicatorConfiguration().DEFAULT_MAX_CONNECTIONS, communicator_config.max_connections)
    def test_construct_from_properties_without_proxy(self):
        """Test if a CommunicatorConfiguration can be constructed correctly from a list of properties"""

        communicator_config = CommunicatorConfiguration(self.config)

        self.assertDefaults(communicator_config)
        self.assertIsNone(communicator_config.api_key_id)
        self.assertIsNone(communicator_config.secret_api_key)
        self.assertIsNone(communicator_config.proxy_configuration)
        self.assertIsNone(communicator_config.integrator)
        self.assertIsNone(communicator_config.shopping_cart_extension)
コード例 #6
0
def create_communicator_configuration(properties_url=PROPERTIES_URL,
                                      max_connections=False):
    """Convenience method to create a communicator configuration that connects to a host stored in system variables"""
    try:
        parser = ConfigParser()
        parser.read(properties_url)
        with open(properties_url) as f:
            parser.read_file(f)
        configuration = CommunicatorConfiguration(
            parser,
            api_key_id=API_KEY_ID,
            secret_api_key=SECRET_API_KEY,
            max_connections=max_connections)
    except IOError as e:
        raise RuntimeError("Unable to read configuration", e)
    host = os.getenv("connect.api.endpoint.host")
    if host is not None:
        scheme = os.getenv("connect.api.endpoint.scheme", "https")
        port = int(os.getenv("connect.api.endpoint.port", -1))
        configuration.api_endpoint = "{2}://{0}:{1}".format(host, port, scheme)
    return configuration
    def test_construct_from_properties_with_max_connection(self):
        """Tests if a CommunicatorConfiguration can be constructed correctly
         from settings that contain a different number of maximum connections
         """
        self.config.set("ConnectSDK", "connect.api.maxConnections", "100")

        communicator_config = CommunicatorConfiguration(self.config)
        self.assertEqual("https://eu.sandbox.api-ingenico.com", communicator_config.api_endpoint.geturl())
        self.assertEqual(AuthorizationType.get_authorization("v1HMAC"), communicator_config.authorization_type)
        self.assertEqual(20, communicator_config.connect_timeout)
        self.assertEqual(10, communicator_config.socket_timeout)
        self.assertEqual(100, communicator_config.max_connections)
        self.assertIsNone(communicator_config.api_key_id)
        self.assertIsNone(communicator_config.secret_api_key)
        self.assertIsNone(communicator_config.proxy_configuration)
    def test_construct_from_properties_with_proxy_without_authentication(self):
        """Tests if a CommunicatorConfiguration can be constructed correctly from settings including a proxy"""
        self.config.set('ConnectSDK', "connect.api.proxy.uri", "http://proxy.example.org:3128")

        communicator_config = CommunicatorConfiguration(self.config)

        self.assertDefaults(communicator_config)
        self.assertIsNone(communicator_config.api_key_id)
        self.assertIsNone(communicator_config.secret_api_key)
        proxy_config = communicator_config.proxy_configuration
        self.assertIsNotNone(proxy_config)
        self.assertEqual("http", proxy_config.scheme)
        self.assertEqual("proxy.example.org", proxy_config.host)
        self.assertEqual(3128, proxy_config.port)
        self.assertIsNone(proxy_config.username)
        self.assertIsNone(proxy_config.password)
コード例 #9
0
 def test_connect_nonexistent_proxy(self):
     """Try connecting to a nonexistent proxy and assert it fails to connect to it"""
     configparser = ConfigParser.ConfigParser()
     configparser.read(init_utils.PROPERTIES_URL_PROXY)
     communicator_config = CommunicatorConfiguration(
         configparser,
         connect_timeout=1,
         socket_timeout=1,
         api_key_id=init_utils.API_KEY_ID,
         secret_api_key=init_utils.SECRET_API_KEY,
         proxy_configuration=ProxyConfiguration(host="localhost",
                                                port=65535,
                                                username="******",
                                                password="******"))
     with Factory.create_client_from_configuration(
             communicator_config) as client:
         with self.assertRaises(CommunicationException):
             client.merchant(MERCHANT_ID).services().testconnection()