1from graphql.pyutils import camel_to_snake, snake_to_camel
2
3
4def describe_camel_to_snake():
5    def converts_typical_names():
6        result = camel_to_snake("CamelCase")
7        assert result == "camel_case"
8        result = camel_to_snake("InputObjectTypeExtensionNode")
9        assert result == "input_object_type_extension_node"
10
11    def may_start_with_lowercase():
12        result = camel_to_snake("CamelCase")
13        assert result == "camel_case"
14
15    def works_with_acronyms():
16        result = camel_to_snake("SlowXMLParser")
17        assert result == "slow_xml_parser"
18        result = camel_to_snake("FastGraphQLParser")
19        assert result == "fast_graph_ql_parser"
20
21    def keeps_already_snake():
22        result = camel_to_snake("snake_case")
23        assert result == "snake_case"
24
25
26def describe_snake_to_camel():
27    def converts_typical_names():
28        result = snake_to_camel("snake_case")
29        assert result == "SnakeCase"
30        result = snake_to_camel("input_object_type_extension_node")
31        assert result == "InputObjectTypeExtensionNode"
32
33    def may_start_with_uppercase():
34        result = snake_to_camel("Snake_case")
35        assert result == "SnakeCase"
36
37    def works_with_acronyms():
38        result = snake_to_camel("slow_xml_parser")
39        assert result == "SlowXmlParser"
40        result = snake_to_camel("fast_graph_ql_parser")
41        assert result == "FastGraphQlParser"
42
43    def keeps_already_camel():
44        result = snake_to_camel("CamelCase")
45        assert result == "CamelCase"
46
47    def can_produce_lower_camel_case():
48        result = snake_to_camel("snake_case", upper=False)
49        assert result == "snakeCase"
50        result = snake_to_camel("input_object_type_extension_node", False)
51        assert result == "inputObjectTypeExtensionNode"
52