def test_verify_signature(self):
        credentials = Credentials(secret="test")
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        params = [("code", "86cbee47aea11249e7042167b90e38c7"),
                  ("shop", "test"), ("timestamp", "1373383855"),
                  ("signature", "6019d0e365811b206fdd7f89037e7400")]
        self.assertTrue(shopify.verify_signature(params))

        params = [("code", "86cbee47aea11249e7"), ("shop", "test"),
                  ("timestamp", "1373383855"),
                  ("signature", "6019d0e365811b206fdd7f89037e7400")]
        self.assertFalse(shopify.verify_signature(params))
    def test_url_for_request(self):
        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        request = Request()
        request.resource = "/test"
        url = shopify.url_for_request(request)
        # Note: the base request class does not have an extension.
        expected = "https://test.myshopify.com/admin/test."
        self.assertEquals(url, expected)

        request.resource = "/test/mmmm food"
        url = shopify.url_for_request(request)
        # Note: The url generated by url_for_request are not escaped. The
        # actual request.{method} will escape the url for us.
        expected = "https://test.myshopify.com/admin/test/mmmm food."
        self.assertEquals(url, expected)
    def test_url_for_request(self):
        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        request = Request()
        request.resource = "/test"
        url = shopify.url_for_request(request)
        # Note: the base request class does not have an extension.
        expected = "https://test.myshopify.com/admin/test."
        self.assertEquals(url, expected)

        request.resource = "/test/mmmm food"
        url = shopify.url_for_request(request)
        # Note: The url generated by url_for_request are not escaped. The
        # actual request.{method} will escape the url for us.
        expected = "https://test.myshopify.com/admin/test/mmmm food."
        self.assertEquals(url, expected)
    def test_verify_signature(self):
        credentials = Credentials(secret="test")
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        params = [
            ("code", "86cbee47aea11249e7042167b90e38c7"),
            ("shop", "test"),
            ("timestamp", "1373383855"),
            ("signature", "6019d0e365811b206fdd7f89037e7400")
        ]
        self.assertTrue(shopify.verify_signature(params))

        params = [
            ("code", "86cbee47aea11249e7"),
            ("shop", "test"),
            ("timestamp", "1373383855"),
            ("signature", "6019d0e365811b206fdd7f89037e7400")
        ]
        self.assertFalse(shopify.verify_signature(params))
    def test_oauth_access_token_url(self):

        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        expected = "https://test.myshopify.com/admin/oauth/access_token?" \
                   "client_id=&client_secret=&code="
        url = shopify.oauth_access_token_url()
        self.assertEqual(url, expected)

        credentials.api_key = api_key = "2e6fff2c-e28d-11e2-b6bf-4061860bdbf3"
        credentials.secret = secret = "mmmmsecret"
        credentials.code = code = "loremipsum"

        expected = "https://test.myshopify.com/admin/oauth/access_token?" \
                   "client_id={api_key}&client_secret={secret}&code={code}" \
                   .format(api_key=api_key, secret=secret, code=code)
        url = shopify.oauth_access_token_url()
        self.assertEqual(url, expected)
    def test_oauth_access_token_url(self):

        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        expected = "https://test.myshopify.com/admin/oauth/access_token?" \
                   "client_id=&client_secret=&code="
        url = shopify.oauth_access_token_url()
        self.assertEqual(url, expected)

        credentials.api_key = api_key = "2e6fff2c-e28d-11e2-b6bf-4061860bdbf3"
        credentials.secret = secret = "mmmmsecret"
        credentials.code = code = "loremipsum"

        expected = "https://test.myshopify.com/admin/oauth/access_token?" \
                   "client_id={api_key}&client_secret={secret}&code={code}" \
                   .format(api_key=api_key, secret=secret, code=code)
        url = shopify.oauth_access_token_url()
        self.assertEqual(url, expected)
    def test_update_call_limit(self):
        encoding = 'UTF-8'

        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        self.assertEqual(shopify.api_call_limit, None)

        data = '{"test_models": [{"id": 1, "name": "test"}]}'
        response = requests.Response()
        response.encoding = encoding
        response._content = data.encode(encoding)
        response.status_code = 200

        shopify._update_call_limit(response)
        self.assertEqual(shopify.api_call_limit, None)

        response.headers['x-shopify-shop-api-call-limit'] = "1"
        shopify._update_call_limit(response)
        self.assertEqual(shopify.api_call_limit, "1")
    def test_oauth_authorize_url(self):

        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        credentials.scope = ['yup']
        url = shopify.oauth_authorize_url(
            redirect_to='http://localhost/installed')

        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id=&scope=yup&" \
                   "redirect_uri=http%3A%2F%2Flocalhost%2Finstalled"

        self.assertEquals(url, expected)

        url = shopify.oauth_authorize_url()
        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id=&scope=yup"

        self.assertEquals(url, expected)

        api_key = "2e6fff2c-e28d-11e2-b6bf-4061860bdbf3"
        credentials.api_key = api_key

        url = shopify.oauth_authorize_url()
        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id={api_key}&scope=yup".format(api_key=api_key)
        self.assertEquals(url, expected)

        credentials.scope = ["fun", "things", "to", "scope", "W$%3'#"]
        url = shopify.oauth_authorize_url()
        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id=2e6fff2c-e28d-11e2-b6bf-4061860bdbf3&" \
                   "scope=fun%2Cthings%2Cto%2Cscope%2CW%24%253%27%23"
        self.assertEquals(url, expected)
    def test_oauth_authorize_url(self):

        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        credentials.scope = ['yup']
        url = shopify.oauth_authorize_url(
            redirect_to='http://localhost/installed'
        )

        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id=&scope=yup&" \
                   "redirect_uri=http%3A%2F%2Flocalhost%2Finstalled"

        self.assertEquals(url, expected)

        url = shopify.oauth_authorize_url()
        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id=&scope=yup"

        self.assertEquals(url, expected)

        api_key = "2e6fff2c-e28d-11e2-b6bf-4061860bdbf3"
        credentials.api_key = api_key

        url = shopify.oauth_authorize_url()
        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id={api_key}&scope=yup".format(api_key=api_key)
        self.assertEquals(url, expected)

        credentials.scope = ["fun", "things", "to", "scope", "W$%3'#"]
        url = shopify.oauth_authorize_url()
        expected = "https://test.myshopify.com/admin/oauth/authorize?" \
                   "client_id=2e6fff2c-e28d-11e2-b6bf-4061860bdbf3&" \
                   "scope=fun%2Cthings%2Cto%2Cscope%2CW%24%253%27%23"
        self.assertEquals(url, expected)
예제 #10
0
    def test_update_call_limit(self):
        encoding = 'UTF-8'

        credentials = Credentials()
        shopify = OAuthEngine(shop_name='test', credentials=credentials)

        self.assertEqual(shopify.api_call_limit, None)

        data = '{"test_models": [{"id": 1, "name": "test"}]}'
        response = requests.Response()
        response.encoding = encoding
        response._content = data.encode(encoding)
        response.status_code = 200

        shopify._update_call_limit(response)
        self.assertEqual(shopify.api_call_limit, None)

        response.headers['x-shopify-shop-api-call-limit'] = "1"
        shopify._update_call_limit(response)
        self.assertEqual(shopify.api_call_limit, "1")