Esempio n. 1
0
    def test_constructor_https(self):
        builder = UrlBuilder("https://google.com")
        self.assertEqual(builder.url_scheme, "https://")
        self.assertEqual(builder.base, "google.com")

        builder = UrlBuilder("https://google.com/")
        self.assertEqual(builder.url_scheme, "https://")
        self.assertEqual(builder.base, "google.com")
Esempio n. 2
0
    def test_set_arguments(self):
        args = {"empty": None, "not_empty": "value", "int": 12, None: None}
        builder = UrlBuilder("http://google.com")
        builder.add_arguments(args=args)

        builder_arguments = builder.arguments
        self.assertIn("not_empty", builder_arguments)
        self.assertIn("int", builder_arguments)

        self.assertNotIn("empty", builder_arguments)
        self.assertNotIn(None, builder_arguments)

        self.assertEqual(builder_arguments["not_empty"], "value")
        self.assertEqual(builder_arguments["int"], 12)
Esempio n. 3
0
    def test_gen_args(self):
        args = {"encoded": "normal", "not_encoded": "http://Hello"}
        url = "http://google.com"
        builder = UrlBuilder(url)
        builder.add_arguments(args)

        result_args = "encoded=normal&not_encoded=http%3A%2F%2FHello"
        result_args2 = "not_encoded=http%3A%2F%2FHello&encoded=normal"

        generated_args = builder.gen_args()
        try:
            self.assertEqual(generated_args, result_args)
        except AssertionError:
            self.assertEqual(generated_args, result_args2)
Esempio n. 4
0
    def test_set_scheme(self):
        builder = UrlBuilder("http://google.com")
        builder.scheme("http://")
        self.assertEqual(builder.url_scheme, "http://")

        builder.scheme("https://")
        self.assertEqual(builder.url_scheme, "https://")

        builder.scheme("file://")
        self.assertEqual(builder.url_scheme, "file://")
Esempio n. 5
0
 def test_gen_path(self):
     url = "http://google.com"
     path = "//test/test//test//"
     builder = UrlBuilder(url)
     builder.append_path(path)
     builder.append_path("more/more2")
     expected_result = "test/test/test/more/more2"
     self.assertEqual(builder.gen_path(), expected_result)
Esempio n. 6
0
    def test_build_without_args(self):
        url = "http://google.com"
        path = "/Some/test///Path//"

        builder = UrlBuilder(url)
        builder.append_path(path)
        builder.scheme("https://")

        final_url = "https://google.com/Some/test/Path"
        self.assertEqual(builder.build(), final_url)
Esempio n. 7
0
    def test_append_path(self):
        builder = UrlBuilder("http://google.com")
        builder.append_path("test/path/test")
        self.assertEqual(builder.path_parts, ["test", "path", "test"])

        builder.append_path("/one/two/test/")
        self.assertEqual(builder.path_parts, ["test", "path", "test",
                                              "one", "two", "test"])
Esempio n. 8
0
    def test_build_with_args(self):
        url = "http://google.com"
        args = {"key": "value", "key_int": 12, "empty": None}
        path = "/Some/test///Path//"

        builder = UrlBuilder(url)
        builder.add_arguments(args)
        builder.append_path(path)
        builder.scheme("https://")

        final_url = "https://google.com/Some/test/Path?key=value&key_int=12"
        final_url2 = "https://google.com/Some/test/Path?key_int=12&key=value"

        result = builder.build()

        try:
            self.assertEqual(result, final_url)
        except AssertionError:
            self.assertEqual(result, final_url2)