def test_string_slash_parameter(self): parser = hurl.Parser() input_text = "blog/<day>" expected_result = [ hurl.StaticPart('blog'), hurl.PatternPart(name='day') ] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_string_slash_parameter_only_type(self): parser = hurl.Parser() input_text = "<:int>/blog/" expected_result = [ hurl.PatternPart(type='int'), hurl.StaticPart('blog') ] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_no_whitespace_in_parameter(self): parser = hurl.Parser() input_text = "< : int >" expected_result = [hurl.PatternPart(type='int')] result = parser.parse(input_text) self.assertEquals(result, expected_result) input_text = " < id : int > " expected_result = [hurl.PatternPart(name='id', type='int')] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_multiple_slash_strings(self): parser = hurl.Parser() input_text = "blog/author/john/smith" expected_result = [ hurl.StaticPart('blog'), hurl.StaticPart('author'), hurl.StaticPart('john'), hurl.StaticPart('smith') ] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_invalid_number_of_lt(self): parser = hurl.Parser() input_text = "><:int/blog/" self.assertRaises(ImproperlyConfigured, parser.parse, input_text) input_text = "<:int/>blog/" self.assertRaises(ImproperlyConfigured, parser.parse, input_text) input_text = "int/blog>/" self.assertRaises(ImproperlyConfigured, parser.parse, input_text) input_text = "<int/blog/" self.assertRaises(ImproperlyConfigured, parser.parse, input_text)
def test_cannot_have_more_than_one_colon(self): parser = hurl.Parser() input_text = "<:year:day>" self.assertRaises(ImproperlyConfigured, parser.parse, input_text)
def test_no_spaces_in_type_name_possible(self): parser = hurl.Parser() input_text = "<:year day>" self.assertRaises(ImproperlyConfigured, parser.parse, input_text)
def test_string_slash_pattern(self): parser = hurl.Parser() input_text = "blog/authors" expected_result = [hurl.StaticPart('blog'), hurl.StaticPart('authors')] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_only_type_parameter(self): parser = hurl.Parser() input_text = "<:int>" expected_result = [hurl.PatternPart(type='int')] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_full_name_type_parameter(self): parser = hurl.Parser() input_text = "<id:int>" expected_result = [hurl.PatternPart(name='id', type='int')] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_name_type_parameter(self): parser = hurl.Parser() input_text = "<year>" expected_result = [hurl.PatternPart(name='year')] result = parser.parse(input_text) self.assertEquals(result, expected_result)
def test_simple_string_is_expression(self): parser = hurl.Parser() input_text = "entries" expected_result = [hurl.StaticPart('entries')] result = parser.parse(input_text) self.assertEquals(result, expected_result)