Beispiel #1
0
class UnicodeTests(TestCase):

    def setUp(self):
        self.base = URL('http://127.0.0.1/')
        self.text = u'ć'
        self.bytes = self.text.encode('utf8')

    def test_set_unicode_query_param_value(self):
        url = self.base.query_param('q', self.text)
        self.assertEqual(self.text, url.query_param('q'))

    def test_set_bytestring_query_param_value(self):
        url = self.base.query_param('q', self.bytes)
        self.assertEqual(self.text, url.query_param('q'))

    def test_set_unicode_query_param_key(self):
        url = self.base.query_param(self.text, 'value')
        self.assertEqual('value', url.query_param(self.text))

    def test_set_bytestring_query_param_key(self):
        url = self.base.query_param(self.bytes, 'value')
        self.assertEqual('value', url.query_param(self.text))

    def test_append_unicode_query_param(self):
        url = self.base.append_query_param('q', self.text)
        self.assertEqual(self.text, url.query_param('q'))

    def test_append_bytestring_query_param(self):
        url = self.base.append_query_param('q', self.bytes)
        self.assertEqual(self.text, url.query_param('q'))

    def test_set_unicode_query_params(self):
        url = self.base.query_params({'q': self.text})
        self.assertEqual(self.text, url.query_param('q'))

    def test_set_bytestring_query_params(self):
        url = self.base.query_params({'q': self.bytes})
        self.assertEqual(self.text, url.query_param('q'))

    def test_add_unicode_path_segment(self):
        url = self.base.add_path_segment(self.text)
        self.assertEqual(self.text, url.path_segment(0))

    def test_add_bytestring_path_segment(self):
        url = self.base.add_path_segment(self.bytes)
        self.assertEqual(self.text, url.path_segment(0))

    def test_add_bytestring_path_segment(self):
        url = self.base.add_path_segment(self.bytes)
        self.assertEqual(self.text, url.path_segment(0))

    def test_add_unicode_fragment(self):
        url = self.base.fragment(self.text)
        self.assertEqual(self.text, url.fragment())
Beispiel #2
0
class UnicodeTests(TestCase):
    def setUp(self):
        self.base = URL("http://127.0.0.1/")
        self.text = u"ć"
        self.bytes = self.text.encode("utf8")

    def test_set_unicode_query_param_value(self):
        url = self.base.query_param("q", self.text)
        self.assertEqual(self.text, url.query_param("q"))

    def test_set_bytestring_query_param_value(self):
        url = self.base.query_param("q", self.bytes)
        self.assertEqual(self.text, url.query_param("q"))

    def test_set_unicode_query_param_key(self):
        url = self.base.query_param(self.text, "value")
        self.assertEqual("value", url.query_param(self.text))

    def test_set_bytestring_query_param_key(self):
        url = self.base.query_param(self.bytes, "value")
        self.assertEqual("value", url.query_param(self.text))

    def test_append_unicode_query_param(self):
        url = self.base.append_query_param("q", self.text)
        self.assertEqual(self.text, url.query_param("q"))

    def test_append_bytestring_query_param(self):
        url = self.base.append_query_param("q", self.bytes)
        self.assertEqual(self.text, url.query_param("q"))

    def test_set_unicode_query_params(self):
        url = self.base.query_params({"q": self.text})
        self.assertEqual(self.text, url.query_param("q"))

    def test_set_bytestring_query_params(self):
        url = self.base.query_params({"q": self.bytes})
        self.assertEqual(self.text, url.query_param("q"))

    def test_add_unicode_path_segment(self):
        url = self.base.add_path_segment(self.text)
        self.assertEqual(self.text, url.path_segment(0))

    def test_add_bytestring_path_segment(self):
        url = self.base.add_path_segment(self.bytes)
        self.assertEqual(self.text, url.path_segment(0))

    def test_add_bytestring_path_segment(self):
        url = self.base.add_path_segment(self.bytes)
        self.assertEqual(self.text, url.path_segment(0))

    def test_add_unicode_fragment(self):
        url = self.base.fragment(self.text)
        self.assertEqual(self.text, url.fragment())
def test_google_login_url(google_client, settings):
    settings.GOOGLE_CLIENT_ID = '112233'
    google_login_url = URL(google_client.get_login_uri())
    params = google_login_url.query_params()
    callback_url = URL(params['redirect_uri'][0])
    func, _args, kwargs = resolve(callback_url.path())
    assert func is oauth_callback
    assert kwargs['service'] == GOOGLE
    assert params['scope'][0] == google_client.scope
    assert params['client_id'][0] == str(google_client.client_id)
def test_facebook_login_url(facebook_client, settings):
    settings.FACEBOOK_APP_ID = '112233'
    facebook_login_url = URL(facebook_client.get_login_uri())
    query = facebook_login_url.query_params()
    callback_url = URL(query['redirect_uri'][0])
    func, _args, kwargs = resolve(callback_url.path())
    assert func is oauth_callback
    assert kwargs['service'] == FACEBOOK
    assert query['scope'][0] == facebook_client.scope
    assert query['client_id'][0] == str(facebook_client.client_id)
Beispiel #5
0
def test_google_login_url(google_client, settings):
    settings.GOOGLE_CLIENT_ID = '112233'
    google_login_url = URL(google_client.get_login_uri())
    params = google_login_url.query_params()
    callback_url = URL(params['redirect_uri'][0])
    func, _args, kwargs = resolve(callback_url.path())
    assert func is oauth_callback
    assert kwargs['service'] == GOOGLE
    assert params['scope'][0] == google_client.scope
    assert params['client_id'][0] == str(google_client.client_id)
Beispiel #6
0
def test_facebook_login_url(facebook_client, settings):
    settings.FACEBOOK_APP_ID = '112233'
    facebook_login_url = URL(facebook_client.get_login_uri())
    query = facebook_login_url.query_params()
    callback_url = URL(query['redirect_uri'][0])
    func, _args, kwargs = resolve(callback_url.path())
    assert func is oauth_callback
    assert kwargs['service'] == FACEBOOK
    assert query['scope'][0] == facebook_client.scope
    assert query['client_id'][0] == str(facebook_client.client_id)
Beispiel #7
0
def test_google_login_url():
    google_client = GoogleClient(local_host='local_host')
    google_login_url = URL(google_client.get_login_uri())
    params = google_login_url.query_params()
    callback_url = URL(params['redirect_uri'][0])
    func, _args, kwargs = resolve(callback_url.path())
    assert func is oauth_callback
    assert kwargs['service'] == GOOGLE
    assert params['scope'][0] == GoogleClient.scope
    assert params['client_id'][0] == str(GoogleClient.client_id)
Beispiel #8
0
def test_facebook_login_url():
    facebook_client = FacebookClient(local_host='localhost')
    facebook_login_url = URL(facebook_client.get_login_uri())
    query = facebook_login_url.query_params()
    callback_url = URL(query['redirect_uri'][0])
    func, _args, kwargs = resolve(callback_url.path())
    assert func is oauth_callback
    assert kwargs['service'] == FACEBOOK
    assert query['scope'][0] == FacebookClient.scope
    assert query['client_id'][0] == str(FacebookClient.client_id)
Beispiel #9
0
 def test_google_login_url(self):
     """Google login url is properly generated"""
     google_client = GoogleClient(local_host='local_host')
     google_login_url = URL(google_client.get_login_uri())
     params = google_login_url.query_params()
     callback_url = URL(params['redirect_uri'][0])
     func, _args, kwargs = resolve(callback_url.path())
     self.assertEquals(func, oauth_callback)
     self.assertEquals(kwargs['service'], GOOGLE)
     self.assertTrue(params['scope'][0] in GoogleClient.scope)
     self.assertEqual(params['client_id'][0], str(GoogleClient.client_id))
Beispiel #10
0
 def test_facebook_login_url(self):
     """Facebook login url is properly generated"""
     facebook_client = FacebookClient(local_host='localhost')
     facebook_login_url = URL(facebook_client.get_login_uri())
     query = facebook_login_url.query_params()
     callback_url = URL(query['redirect_uri'][0])
     func, _args, kwargs = resolve(callback_url.path())
     self.assertEquals(func, oauth_callback)
     self.assertEquals(kwargs['service'], FACEBOOK)
     self.assertEqual(query['scope'][0], FacebookClient.scope)
     self.assertEqual(query['client_id'][0], str(FacebookClient.client_id))
Beispiel #11
0
 def test_google_login_url(self):
     """Google login url is properly generated"""
     google_client = GoogleClient(local_host='local_host')
     google_login_url = URL(google_client.get_login_uri())
     params = google_login_url.query_params()
     callback_url = URL(params['redirect_uri'][0])
     func, _args, kwargs = resolve(callback_url.path())
     self.assertEquals(func, oauth_callback)
     self.assertEquals(kwargs['service'], GOOGLE)
     self.assertIn(params['scope'][0], GoogleClient.scope)
     self.assertEqual(params['client_id'][0], GoogleClient.client_id)
Beispiel #12
0
 def test_facebook_login_url(self):
     """Facebook login url is properly generated"""
     facebook_client = FacebookClient(local_host='localhost')
     facebook_login_url = URL(facebook_client.get_login_uri())
     query = facebook_login_url.query_params()
     callback_url = URL(query['redirect_uri'][0])
     func, _args, kwargs = resolve(callback_url.path())
     self.assertEquals(func, oauth_callback)
     self.assertEquals(kwargs['service'], FACEBOOK)
     self.assertEqual(query['scope'][0], FacebookClient.scope)
     self.assertEqual(query['client_id'][0], FacebookClient.client_id)
Beispiel #13
0
def url(app, path='/', **query):
    u = URL(host=app, path=path, query=query)
    return str(u.query_params(query))
Beispiel #14
0
def url(app, path='/', **query):  # pragma: no cover
    u = URL(host=app, path=path, query=query)
    return str(u.query_params(query))
Beispiel #15
0
print(inline_url.as_string())

u = URL('postgres://*****:*****@localhost:1234/test?ssl=true')
print(u.scheme())
print(u.host())
print(u.domain())
print(u.username())
print(u.password())
print(u.netloc())
print(u.port())
print(u.path())
print(u.query())
print(u.path_segments())
print(u.query_param('ssl'))
print(u.query_param('ssl', as_list=True))
print(u.query_params())
print(u.has_query_param('ssl'))
print(u.subdomains())

u = URL.from_string('https://github.com/minwook-shin')
print(u.path_segment(0))

new_url = u.add_path_segment('minwook-shin.github.com')
print(new_url.as_string())

from purl import expand
print(expand(u"{/path*}", {'path': ['sub', 'index']}))

from purl import Template
template = Template("http://example.com{/path*}")
url = template.expand({'path': ['sub', 'index']})