def test_matchClientFixes(self): """ Test that L{matchClientFixes} correctly identifies clients with matching fix tokens. """ c = ConfigDict() c.ClientFixes = { "fix1": [ "Client/1\\.0.*", "Client/1\\.1(\\..*)?", "Client/2", ], "fix2": [ "Other/1\\.0.*", ], } _updateClientFixes(c) _updateClientFixes(c) # Valid matches for ua in ( "Client/1.0 FooBar/2", "Client/1.0.1 FooBar/2", "Client/1.0.1.1 FooBar/2", "Client/1.1 FooBar/2", "Client/1.1.1 FooBar/2", "Client/2 FooBar/2", ): self.assertEqual( matchClientFixes(c, ua), set(("fix1", )), msg="Did not match {}".format(ua), ) # Valid non-matches for ua in ( "Client/1 FooBar/2", "Client/1.10 FooBar/2", "Client/2.0 FooBar/2", "Client/2.0.1 FooBar/2", "Client FooBar/2", "Client/3 FooBar/2", "Client/3.0 FooBar/2", "Client/10 FooBar/2", "Client/10.0 FooBar/2", "Client/10.0.1 FooBar/2", "Client/10.0.1 (Client/1.0) FooBar/2", "Client/10.0.1 (foo Client/1.0 bar) FooBar/2", ): self.assertEqual( matchClientFixes(c, ua), set(), msg="Incorrectly matched {}".format(ua), )
def test_matchClientFixes(self): """ Test that L{matchClientFixes} correctly identifies clients with matching fix tokens. """ c = ConfigDict() c.ClientFixes = { "fix1": [ "Client/1\\.0.*", "Client/1\\.1(\\..*)?", "Client/2", ], "fix2": [ "Other/1\\.0.*", ], } _updateClientFixes(c) _updateClientFixes(c) # Valid matches for ua in ( "Client/1.0 FooBar/2", "Client/1.0.1 FooBar/2", "Client/1.0.1.1 FooBar/2", "Client/1.1 FooBar/2", "Client/1.1.1 FooBar/2", "Client/2 FooBar/2", ): self.assertEqual( matchClientFixes(c, ua), set(("fix1",)), msg="Did not match {}".format(ua), ) # Valid non-matches for ua in ( "Client/1 FooBar/2", "Client/1.10 FooBar/2", "Client/2.0 FooBar/2", "Client/2.0.1 FooBar/2", "Client FooBar/2", "Client/3 FooBar/2", "Client/3.0 FooBar/2", "Client/10 FooBar/2", "Client/10.0 FooBar/2", "Client/10.0.1 FooBar/2", "Client/10.0.1 (Client/1.0) FooBar/2", "Client/10.0.1 (foo Client/1.0 bar) FooBar/2", ): self.assertEqual( matchClientFixes(c, ua), set(), msg="Incorrectly matched {}".format(ua), )