def testVariableValueIsStableInASinglePath(self): """Test it keeps variable value stable in a single path.""" processor = windows.EnvVarsPostProcessor({"foo": ["bar", "blah"]}) self.assertEqual( set(processor.Process(r"C:\WINDOWS\%foo%\%foo%\something")), set([r"C:\WINDOWS\bar\bar\something", r"C:\WINDOWS\blah\blah\something"]))
def testReplacesTwoVariables(self): """Test it correctly replaces two variables.""" processor = windows.EnvVarsPostProcessor({"foo": "bar", "blah": "blahblah"}) self.assertEqual( processor.Process(r"C:\WINDOWS\%foo%\%blah%\something"), [r"C:\WINDOWS\bar\blahblah\something"])
def testGeneratesProductIfTwoReplacementsHaveMultipleValues(self): """Test it generates a product if two replacements have multiple values.""" processor = windows.EnvVarsPostProcessor({"foo": ["bar1", "bar2"], "blah": ["blah1", "blah2"]}) self.assertEqual( set(processor.Process(r"C:\WINDOWS\%foo%\%blah%\something")), set([r"C:\WINDOWS\bar1\blah1\something", r"C:\WINDOWS\bar1\blah2\something", r"C:\WINDOWS\bar2\blah1\something", r"C:\WINDOWS\bar2\blah2\something"]))
def testGeneratesMultipleReplacementsIfReplacementIsList(self): """Test it generates multiple replacements if replacement is a list.""" processor = windows.EnvVarsPostProcessor({"foo": ["bar", "blah"]}) self.assertEqual( set(processor.Process(r"C:\WINDOWS\%foo%\something")), set([r"C:\WINDOWS\bar\something", r"C:\WINDOWS\blah\something"]))
def testVariableReplacementIsCaseInsensitive(self): """Test variable replacement is case insensitive.""" processor = windows.EnvVarsPostProcessor({"foo": "bar"}) self.assertEqual( processor.Process(r"C:\WINDOWS\%FoO%\something"), [r"C:\WINDOWS\bar\something"])
def testReplacesOneVariable(self): """Test it correctly replaces one variable.""" processor = windows.EnvVarsPostProcessor({"foo": "bar"}) self.assertEqual( processor.Process(r"C:\WINDOWS\%foo%\something"), [r"C:\WINDOWS\bar\something"])
def testDoesNothingIfMappingIsEmpty(self): """Test it does nothing if the mapping is empty.""" processor = windows.EnvVarsPostProcessor({}) self.assertEqual(processor.Process("a"), ["a"])
def testReplacesSystem32PrefixWithSystemRootVariable(self): """Test it replaces system32 prefix with a system root variable.""" processor = windows.EnvVarsPostProcessor({"systemroot": "blah"}) self.assertEqual( processor.Process(r"System32\foo\bar"), [r"blah\system32\foo\bar"])