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())
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 get_resource_url(self, id=None, action=None): """ Get a base URL for the resource with the given id and/or action. :return: A string URL with the full path to the resource """ base_url = URL(Configuration.BASE_API_URL).add_path_segment(self._resource_name) if id: base_url = base_url.add_path_segment(id) if action: base_url = base_url.add_path_segment(action) return base_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']}) print(url.as_string())