def test_name_node(): node = Node() step_node = node.add(Step('foo')) variables = {} assert node.resolve('foo', variables) is step_node assert not variables assert node.resolve('bar', variables) is None assert not variables
def test_name_node(): node = Node() step_node = node.add(Step("foo")) variables = {} assert node.resolve("foo", variables) is step_node assert not variables assert node.resolve("bar", variables) is None assert not variables
def test_variable_node(): node = Node() step_node = node.add(Step('{x}')) variables = {} assert node.resolve('foo', variables) is step_node assert variables == {'x': 'foo'} variables = {} assert node.resolve('bar', variables) is step_node assert variables == {'x': 'bar'}
def test_variable_node(): node = Node() step_node = node.add(Step("{x}")) variables = {} assert node.resolve("foo", variables) is step_node assert variables == {"x": "foo"} variables = {} assert node.resolve("bar", variables) is step_node assert variables == {"x": "bar"}
def test_variable_node_optional_colon(): node = Node() x_node = node.add(Step('{x}')) xy_node = node.add(Step('{x}:{y}')) variables = {} assert node.resolve('a', variables) is x_node assert variables == {'x': 'a'} variables = {} assert node.resolve('a:b', variables) is xy_node assert variables == {'x': 'a', 'y': 'b'}
def test_variable_node_optional_colon(): node = Node() x_node = node.add(Step("{x}")) xy_node = node.add(Step("{x}:{y}")) variables = {} assert node.resolve("a", variables) is x_node assert variables == {"x": "a"} variables = {} assert node.resolve("a:b", variables) is xy_node assert variables == {"x": "a", "y": "b"}
def test_variable_node_specific_first(): node = Node() x_node = node.add(Step("{x}")) prefix_node = node.add(Step("prefix{x}")) variables = {} assert node.resolve("what", variables) is x_node assert variables == {"x": "what"} variables = {} assert node.resolve("prefixwhat", variables) is prefix_node assert variables == {"x": "what"}
def test_variable_node_specific_first(): node = Node() x_node = node.add(Step('{x}')) prefix_node = node.add(Step('prefix{x}')) variables = {} assert node.resolve('what', variables) is x_node assert variables == {'x': 'what'} variables = {} assert node.resolve('prefixwhat', variables) is prefix_node assert variables == {'x': 'what'}
def test_mixed_node(): node = Node() step_node = node.add(Step('prefix{x}postfix')) variables = {} assert node.resolve('prefixfoopostfix', variables) is step_node assert variables == {'x': 'foo'} variables = {} assert node.resolve('prefixbarpostfix', variables) is step_node assert variables == {'x': 'bar'} variables = {} assert node.resolve('prefixwhat', variables) is None assert variables == {}
def test_mixed_node(): node = Node() step_node = node.add(Step("prefix{x}postfix")) variables = {} assert node.resolve("prefixfoopostfix", variables) is step_node assert variables == {"x": "foo"} variables = {} assert node.resolve("prefixbarpostfix", variables) is step_node assert variables == {"x": "bar"} variables = {} assert node.resolve("prefixwhat", variables) is None assert variables == {}
def test_variable_node_more_specific_first(): node = Node() xy_node = node.add(Step('x{x}y')) xay_node = node.add(Step('xa{x}y')) ay_node = node.add(Step('a{x}y')) variables = {} assert node.resolve('xwhaty', variables) is xy_node assert variables == {'x': 'what'} variables = {} assert node.resolve('xawhaty', variables) is xay_node assert variables == {'x': 'what'} variables = {} assert node.resolve('awhaty', variables) is ay_node assert variables == {'x': 'what'}
def test_variable_node_more_specific_first(): node = Node() xy_node = node.add(Step("x{x}y")) xay_node = node.add(Step("xa{x}y")) ay_node = node.add(Step("a{x}y")) variables = {} assert node.resolve("xwhaty", variables) is xy_node assert variables == {"x": "what"} variables = {} assert node.resolve("xawhaty", variables) is xay_node assert variables == {"x": "what"} variables = {} assert node.resolve("awhaty", variables) is ay_node assert variables == {"x": "what"}