Ejemplo n.º 1
0
 def test_should_accept_valid_ip_url(self):
     self.assertTrue(is_url('http://123.123.123.123'))
     self.assertTrue(is_url('http://1.123.123.123'))
     self.assertTrue(is_url('http://1.1.123.123'))
     self.assertTrue(is_url('http://1.1.1.123'))
     self.assertTrue(is_url('http://1.1.1.1'))
     self.assertTrue(is_url('http://123.123.123.1'))
     self.assertTrue(is_url('http://123.123.1.1'))
     self.assertTrue(is_url('http://123.1.1.1'))
Ejemplo n.º 2
0
 def test_should_exclude_invalid_ip(self):
     self.assertFalse(is_url('http://1.2.3'))
     self.assertFalse(is_url('http://1.2.3.'))
     self.assertFalse(is_url('http://123.123.123.1234'))
     self.assertFalse(is_url('http://.123.123.123.123'))
     self.assertFalse(is_url('http://123.123.123.123.'))
     self.assertFalse(is_url('http://123.123...123.123'))
     self.assertFalse(is_url('http://123..123..123.123'))
Ejemplo n.º 3
0
 def test_should_accept_any_scheme_by_default(self):
     self.assertTrue(is_url('http://site.com'))
     self.assertTrue(is_url('http://www.site.com'))
     self.assertTrue(is_url('https://site.com'))
     self.assertTrue(is_url('https://www.site.com'))
     self.assertTrue(is_url('ftp://site.com'))
     self.assertTrue(is_url('git://site.com'))
Ejemplo n.º 4
0
    def is_valid(self):
        logger.debug("Starting validation of the scenario object")

        tree = self.scenario
        q_ids = tree.keys()
        graph = defaultdict(list)

        for q_id, question in tree.items():
            answers = question.get('answers')
            assert len(answers) > 0, "Question should always contain answer"
            for a_id, answer in enumerate(answers):
                answer_type = answer['type']
                assert 'text' in answer, \
                    "In answer there should be field of the text and it should be a str"
                if answer_type in [ARTICLE, EXTERNAL, SBSS]:
                    assert su.is_url(
                        answer['content']
                    ), "Content of the answer of this type should be url"
                elif answer_type in [
                        QUESTION,
                ]:
                    assert answer['content'] in q_ids, \
                        "Content of the question type answer should be in declared question ids."
                    graph[q_id].append(answer['content'])
                else:
                    raise AssertionError(
                        "There are no such handler for type as {}".format(
                            answer_type))

        logger.debug("Searching cycles in the tree")

        # cycles = []
        # for node in graph.keys():
        #     for path in dfs(graph, node, node):
        #         cycles.append([node] + path)

        # cycles = [[node] + path for node in graph for path in dfs(graph, node, node)]
        # assert len(cycles) == 0, "There should be no cycles for any node/question"

        logger.debug("Finished validation of the scenario object")
        return True
Ejemplo n.º 5
0
 def test_localhost_is_an_accepted_url(self):
     self.assertTrue(is_url('http://localhost'))
Ejemplo n.º 6
0
 def test_should_return_false_for_non_string_objects(self):
     self.assertFalse(is_url(None))
     self.assertFalse(is_url(False))
     self.assertFalse(is_url(0))
     self.assertFalse(is_url([]))
     self.assertFalse(is_url({'a': 1}))
Ejemplo n.º 7
0
 def test_www_is_optional(self):
     self.assertTrue(is_url('http://www.mysite.com'))
     self.assertTrue(is_url('http://mysite.com'))
Ejemplo n.º 8
0
 def test_url_cannot_start_with_slash(self):
     self.assertFalse(is_url('http:///www.site.com'))
Ejemplo n.º 9
0
 def test_url_can_contain_dash(self):
     self.assertTrue(is_url('http://some-site-name.com'))
Ejemplo n.º 10
0
 def test_file_can_contains_multiple_dots(self):
     self.assertTrue(is_url('http://site.com/foo/file.name.ext'))
Ejemplo n.º 11
0
 def test_a_full_url(self):
     self.assertTrue(is_url('https://www.site.com/a/b/c/banana/file.html?foo=1&bar=2#hello-world'))
Ejemplo n.º 12
0
 def test_url_can_have_port_number(self):
     self.assertTrue(is_url('http://localhost:8080'))
Ejemplo n.º 13
0
 def test_domain_extension_should_be_between_2_and_6_letters(self):
     self.assertFalse(is_url('http://google.c'))
     self.assertFalse(is_url('http://google.abcdefghi'))
Ejemplo n.º 14
0
 def test_domain_extension_is_required_for_named_urls(self):
     self.assertFalse(is_url('http://google'))
     self.assertFalse(is_url('http://google.'))
Ejemplo n.º 15
0
 def test_scheme_is_required(self):
     self.assertFalse(is_url('google.com'))
     self.assertFalse(is_url('www.google.com'))
Ejemplo n.º 16
0
 def test_string_cannot_contain_spaces(self):
     self.assertFalse(is_url(' http://www.google.com'))
     self.assertFalse(is_url('http://www.google.com '))
     self.assertFalse(is_url('http://www.google.com/ ncr'))
     self.assertFalse(is_url('http://www.goo gle.com'))
Ejemplo n.º 17
0
 def test_string_cannot_be_blank(self):
     self.assertFalse(is_url(''))
     self.assertFalse(is_url(' '))
Ejemplo n.º 18
0
 def test_url_can_contain_query_string(self):
     self.assertTrue(is_url('http://site.com/foo/?'))
     self.assertTrue(is_url('http://site.com/foo/?foo'))
     self.assertTrue(is_url('http://site.com/foo/?foo=bar'))
     self.assertTrue(is_url('http://site.com/foo/?foo=bar&baz=1'))
     self.assertTrue(is_url('http://site.com/foo/?foo=bar&baz=1&'))
Ejemplo n.º 19
0
 def test_url_can_have_user_and_password(self):
     self.assertTrue(is_url('postgres://*****:*****@localhost:5432/mydb'))
Ejemplo n.º 20
0
 def test_url_can_have_hash_part(self):
     self.assertTrue(is_url('http://site.com/foo#anchor'))
     self.assertTrue(is_url('http://site.com/foo#anchor2-with_several+signs++'))
Ejemplo n.º 21
0
 def test_url_can_contain_sub_folders(self):
     self.assertTrue(is_url('http://www.site.com/one'))
     self.assertTrue(is_url('http://www.site.com/one/'))
     self.assertTrue(is_url('http://www.site.com/one/two'))
     self.assertTrue(is_url('http://www.site.com/one/two/'))
     self.assertTrue(is_url('http://www.site.com/one/two/three/four/five/six'))
Ejemplo n.º 22
0
 def test_should_restrict_checking_on_provided_schemes(self):
     self.assertTrue(is_url('git://site.com'))
     self.assertFalse(is_url('git://site.com', allowed_schemes=['http', 'https']))
Ejemplo n.º 23
0
 def test_url_can_contain_file_extension(self):
     self.assertTrue(is_url('http://site.com/foo/photo.jpg'))
     self.assertTrue(is_url('http://site.com/index.html'))
Ejemplo n.º 24
0
 def test_url_cannot_start_with_dot(self):
     self.assertFalse(is_url('http://.site.com'))