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_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_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)