class TestFlagCollector(unittest.TestCase): def setUp(self): self.conf = Config() self.conf.setFlagDuration(60) self.conf.addTeamInfo("Team1","127.0.0.1","127.0.0.0/24") self.conf.addTeamInfo("Team2","127.0.1.1","127.0.1.0/24") def testBasicUsage(self): fc = FlagCollector() f1 = Flag(0,0,0,time.time()) f2 = Flag(0,1,0,time.time()) fc.enque(f1) fc.enque(f2) flags = fc.collect() self.assert_(len(flags) == 2) flags = fc.collect() self.assert_(len(flags) == 0) def testThreadSafety(self): fc = FlagCollector() p1 = FlagCollectorPopulator(fc,10000,10) p2 = FlagCollectorPopulator(fc,10000,20) p3 = FlagCollectorPopulator(fc,10000,30) p4 = FlagCollectorPopulator(fc,10000,30) p5 = FlagCollectorPopulator(fc,10000,30) p1.start() p2.start() p3.start() p4.start() p5.start() total = 0 for i in xrange(1000): total += len(fc.collect()) time.sleep(1.0/1000.0) p1.join() p2.join() p3.join() p4.join() p5.join() total += len(fc.collect()) self.assertEquals(total,50000)
class TestFlagCollector(unittest.TestCase): def setUp(self): self.conf = Config() self.conf.setFlagDuration(60) self.conf.addTeamInfo("Team1", "127.0.0.1", "127.0.0.0/24") self.conf.addTeamInfo("Team2", "127.0.1.1", "127.0.1.0/24") def testBasicUsage(self): fc = FlagCollector() f1 = Flag(0, 0, 0, time.time()) f2 = Flag(0, 1, 0, time.time()) fc.enque(f1) fc.enque(f2) flags = fc.collect() self.assert_(len(flags) == 2) flags = fc.collect() self.assert_(len(flags) == 0) def testThreadSafety(self): fc = FlagCollector() p1 = FlagCollectorPopulator(fc, 10000, 10) p2 = FlagCollectorPopulator(fc, 10000, 20) p3 = FlagCollectorPopulator(fc, 10000, 30) p4 = FlagCollectorPopulator(fc, 10000, 30) p5 = FlagCollectorPopulator(fc, 10000, 30) p1.start() p2.start() p3.start() p4.start() p5.start() total = 0 for i in xrange(1000): total += len(fc.collect()) time.sleep(1.0 / 1000.0) p1.join() p2.join() p3.join() p4.join() p5.join() total += len(fc.collect()) self.assertEquals(total, 50000)
class TestFlagValidator(unittest.TestCase): def setUp(self): self.conf = Config() self.conf.setFlagDuration(60) self.conf.addTeamInfo("Team1","127.0.0.1","127.0.0.0/24") self.conf.addTeamInfo("Team2","127.0.1.1","127.0.1.0/24") def testEnsureDifferentTeams(self): fv = FlagValidator(self.conf.numTeams(),self.conf.getFlagDuration()) flag = Flag(0,0,0,time.time()) self.assert_(fv.validate(0,flag) == FlagValidator.SAME_TEAM) self.assert_(fv.validate(1,flag) == FlagValidator.VALID) def testEnsureDuration(self): fv = FlagValidator(self.conf.numTeams(),self.conf.getFlagDuration()) flagExpired = Flag(0,0,0,time.time()-61) flagOk = Flag(0,0,0,time.time()-59) self.assert_(fv.validate(1,flagOk) == FlagValidator.VALID) self.assert_(fv.validate(1,flagExpired) == FlagValidator.EXPIRED) def testEnsureUnique(self): fv = FlagValidator(self.conf.numTeams(),self.conf.getFlagDuration()) flag = Flag(0,0,0,time.time()) self.assert_(fv.validate(1,flag) == FlagValidator.VALID) self.assert_(fv.validate(1,flag) == FlagValidator.REPEAT) def testEnsureUniqueBug(self): fv = FlagValidator(self.conf.numTeams(),self.conf.getFlagDuration()) flag = Flag(0,0,0,time.time()) self.assert_(fv.validate(1,flag) == FlagValidator.VALID) for i in xrange(100): self.assert_(fv.validate(1,flag) == FlagValidator.REPEAT) def testLargeRecord(self): fv = FlagValidator(self.conf.numTeams(),self.conf.getFlagDuration()) for i in xrange(1000): flag = Flag(0,i,0,time.time()) self.assert_(fv.validate(1,flag) == FlagValidator.VALID) flag = Flag(0,500,0,time.time()) self.assert_(fv.validate(1,flag) == FlagValidator.REPEAT)
class TestFlagValidator(unittest.TestCase): def setUp(self): self.conf = Config() self.conf.setFlagDuration(60) self.conf.addTeamInfo("Team1", "127.0.0.1", "127.0.0.0/24") self.conf.addTeamInfo("Team2", "127.0.1.1", "127.0.1.0/24") def testEnsureDifferentTeams(self): fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration()) flag = Flag(0, 0, 0, time.time()) self.assert_(fv.validate(0, flag) == FlagValidator.SAME_TEAM) self.assert_(fv.validate(1, flag) == FlagValidator.VALID) def testEnsureDuration(self): fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration()) flagExpired = Flag(0, 0, 0, time.time() - 61) flagOk = Flag(0, 0, 0, time.time() - 59) self.assert_(fv.validate(1, flagOk) == FlagValidator.VALID) self.assert_(fv.validate(1, flagExpired) == FlagValidator.EXPIRED) def testEnsureUnique(self): fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration()) flag = Flag(0, 0, 0, time.time()) self.assert_(fv.validate(1, flag) == FlagValidator.VALID) self.assert_(fv.validate(1, flag) == FlagValidator.REPEAT) def testEnsureUniqueBug(self): fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration()) flag = Flag(0, 0, 0, time.time()) self.assert_(fv.validate(1, flag) == FlagValidator.VALID) for i in xrange(100): self.assert_(fv.validate(1, flag) == FlagValidator.REPEAT) def testLargeRecord(self): fv = FlagValidator(self.conf.numTeams(), self.conf.getFlagDuration()) for i in xrange(1000): flag = Flag(0, i, 0, time.time()) self.assert_(fv.validate(1, flag) == FlagValidator.VALID) flag = Flag(0, 500, 0, time.time()) self.assert_(fv.validate(1, flag) == FlagValidator.REPEAT)