class TestDrvinfo(TestCaseBase): @ValidateRunningAsRoot @requires_brctl def setUp(self): self._bridge = Bridge() self._bridge.addDevice() def tearDown(self): self._bridge.delDevice() def testBridgeEthtoolDrvinfo(self): self.assertEqual(ipwrapper.drv_name(self._bridge.devName), ipwrapper.LinkType.BRIDGE) def testEnablePromisc(self): ipwrapper.getLink(self._bridge.devName).promisc = True self.assertTrue(ipwrapper.getLink(self._bridge.devName).promisc, "Could not enable promiscuous mode.") def testDisablePromisc(self): ipwrapper.getLink(self._bridge.devName).promisc = True ipwrapper.getLink(self._bridge.devName).promisc = False self.assertFalse(ipwrapper.getLink(self._bridge.devName).promisc, "Could not disable promiscuous mode.")
class TestDrvinfo(TestCaseBase): @ValidateRunningAsRoot @requires_brctl def setUp(self): self._bridge = Bridge() self._bridge.addDevice() def tearDown(self): self._bridge.delDevice() def testBridgeEthtoolDrvinfo(self): self.assertEqual(ipwrapper.drv_name(self._bridge.devName), ipwrapper.LinkType.BRIDGE) def testEnablePromisc(self): ipwrapper.getLink(self._bridge.devName).promisc = True self.assertTrue( ipwrapper.getLink(self._bridge.devName).promisc, "Could not enable promiscuous mode.") def testDisablePromisc(self): ipwrapper.getLink(self._bridge.devName).promisc = True ipwrapper.getLink(self._bridge.devName).promisc = False self.assertFalse( ipwrapper.getLink(self._bridge.devName).promisc, "Could not disable promiscuous mode.")
class TestLinks(TestCaseBase): @ValidateRunningAsRoot @requires_brctl def setUp(self): self._bridge = Bridge() self._bridge.addDevice() def tearDown(self): self._bridge.delDevice() def testGetLink(self): link = ipwrapper.getLink(self._bridge.devName) self.assertTrue(link.isBRIDGE) self.assertEqual(link.master, None) self.assertEqual(link.name, self._bridge.devName)
class TestUnicodeDrvinfo(TestCaseBase): @ValidateRunningAsRoot @requires_brctl def setUp(self): # First 3 Hebrew letters # See http://unicode.org/charts/PDF/U0590.pdf self._bridge = Bridge("\xd7\x90\xd7\x91\xd7\x92") self._bridge.addDevice() def tearDown(self): self._bridge.delDevice() def testUtf8BridgeEthtoolDrvinfo(self): self.assertEqual( ipwrapper.drv_name(self._bridge.devName.decode('utf8')), ipwrapper.LinkType.BRIDGE)
class TestQdisc(TestCaseBase): @ValidateRunningAsRoot @requires_tc def setUp(self): self._bridge = Bridge() self._bridge.addDevice() def tearDown(self): self._bridge.delDevice() def _showQdisc(self): popen = Popen([EXT_TC, "qdisc", "show", "dev", self._bridge.devName], stdout=PIPE) return popen.stdout.read() def _addIngress(self): tc._qdisc_replace_ingress(self._bridge.devName) self.assertIn("qdisc ingress", self._showQdisc()) def testToggleIngress(self): self._addIngress() tc._qdisc_del(self._bridge.devName, 'ingress') self.assertNotIn("qdisc ingress", self._showQdisc()) def testQdiscsOfDevice(self): self._addIngress() self.assertEquals(("ffff:", ), tuple(tc._qdiscs_of_device(self._bridge.devName))) def testReplacePrio(self): self._addIngress() tc.qdisc.replace(self._bridge.devName, 'prio', parent=None) self.assertIn("root", self._showQdisc()) def testException(self): self.assertRaises(tc.TrafficControlException, tc._qdisc_del, "__nosuchiface__", 'ingress')