def test_strip_locals(): # Raw pass through non-dictionary-like things assert release.strip_locals('foo') == 'foo' assert release.strip_locals(['a', 'b']) == ['a', 'b'] # Dictionaries get all local_ keys removed assert release.strip_locals({'a': 'b', 'foo_local': 'foo'}) == {'a': 'b', 'foo_local': 'foo'} assert release.strip_locals({'local_a': 'foo'}) == {} assert release.strip_locals({'local_a': 'foo', None: 'foo'}) == {None: 'foo'} assert release.strip_locals({'a': 1, 'local_a': 3.4}) == {'a': 1} assert release.strip_locals({'local_a': 'foo', 'local_path': '/test', 'foobar': 'baz'}) == {'foobar': 'baz'} assert release.strip_locals({'local_a': 'foo', 'local_path': '/test'}) == {} # Test the recursive case, as well as that the source dictionary isn't modified. src_dict = {'a': {'local_a': 'foo'}, 'local_b': '/test', 'c': {'d': 'e', 'f': 'g'}} assert release.strip_locals(src_dict) == {'a': {}, 'c': {'d': 'e', 'f': 'g'}} assert src_dict == {'a': {'local_a': 'foo'}, 'local_b': '/test', 'c': {'d': 'e', 'f': 'g'}} # Test recursion with lists. # Dicts inside the list should be cleaned, but not the list itself. src_list = [{'a': {'local_a': 'foo'}, 'local_b': '/test', 'c': {'d': 'e', 'f': 'g'}}, 'local_h'] assert release.strip_locals(src_list) == [{'a': {}, 'c': {'d': 'e', 'f': 'g'}}, 'local_h'] assert src_list == [{'a': {'local_a': 'foo'}, 'local_b': '/test', 'c': {'d': 'e', 'f': 'g'}}, 'local_h']
def test_strip_locals(): # Raw pass through non-dictionary-like things assert release.strip_locals("foo") == "foo" assert release.strip_locals(["a", "b"]) == ["a", "b"] # Dictionaries get all local_ keys removed assert release.strip_locals({"a": "b", "foo_local": "foo"}) == {"a": "b", "foo_local": "foo"} assert release.strip_locals({"local_a": "foo"}) == {} assert release.strip_locals({"local_a": "foo", None: "foo"}) == {None: "foo"} assert release.strip_locals({"a": 1, "local_a": 3.4}) == {"a": 1} assert release.strip_locals({"local_a": "foo", "local_path": "/test", "foobar": "baz"}) == {"foobar": "baz"} assert release.strip_locals({"local_a": "foo", "local_path": "/test"}) == {} # Test the recursive case, as well as that the source dictionary isn't modified. src_dict = {"a": {"local_a": "foo"}, "local_b": "/test", "c": {"d": "e", "f": "g"}} assert release.strip_locals(src_dict) == {"a": {}, "c": {"d": "e", "f": "g"}} assert src_dict == {"a": {"local_a": "foo"}, "local_b": "/test", "c": {"d": "e", "f": "g"}} # Test recursion with lists. # Dicts inside the list should be cleaned, but not the list itself. src_list = [{"a": {"local_a": "foo"}, "local_b": "/test", "c": {"d": "e", "f": "g"}}, "local_h"] assert release.strip_locals(src_list) == [{"a": {}, "c": {"d": "e", "f": "g"}}, "local_h"] assert src_list == [{"a": {"local_a": "foo"}, "local_b": "/test", "c": {"d": "e", "f": "g"}}, "local_h"]