def test_revision(self, sock=None): myset = WiSet(name=self.name, attr_type="hash:net", sock=sock) myset.create() assert load_ipset(self.name, sock=sock).revision >= 6 myset.destroy()
def test_force_attr_revision(self): sock = get_ipset_socket(attr_revision=2) myset = WiSet(name=self.name, attr_type="hash:net", sock=sock) myset.create() assert load_ipset(self.name, sock=sock).revision >= 2 myset.destroy() sock.close()
def test_basic_attribute_reads(self, sock=None): for value in [True, False]: myset = WiSet(name=self.name, sock=sock, counters=value, comment=value) if sock is None: myset.open_netlink() myset.create() from_netlink = load_ipset(self.name, sock=sock) assert value == from_netlink.comment assert value == from_netlink.counters myset.destroy() if sock is None: myset.close_netlink()
def test_list_on_large_set(self, sock=None): set_size = 30000 base_ip = "10.10.%d.%d" with WiSet(name=self.name, sock=sock) as myset: myset.create() for i in range(0, set_size): myset.add(base_ip % (i / 255, i % 255)) stats_len = len(myset.content) stats_len2 = len( load_ipset(self.name, content=True, sock=sock).content) myset.destroy() assert stats_len == set_size assert stats_len2 == set_size
def test_timeout(self, sock=None): ip = "1.2.3.4" timeout = 2 with WiSet(name=self.name, sock=sock, timeout=timeout) as myset: myset.create() myset.add(ip) sleep(3) myset.update_content() assert ip not in myset.content assert timeout == load_ipset(self.name).timeout myset.add(ip, timeout=0) myset.update_content() assert 0 == myset.content[ip].timeout myset.destroy()
def test_list_on_large_set(self, sock=None): set_size = 30000 base_ip = "10.10.%d.%d" with WiSet(name=self.name, sock=sock) as myset: myset.create() for i in range(0, set_size): myset.add(base_ip % (i / 255, i % 255)) stats_len = len(myset.content) stats_len2 = len(load_ipset(self.name, content=True, sock=sock).content) myset.destroy() assert stats_len == set_size assert stats_len2 == set_size
def test_stats_consistency(self, sock=None): """ Test several way to fill the statistics of one IPSet """ entries = ["1.2.3.4", "1.2.3.5", "1.2.3.6"] myset = WiSet(name=self.name, sock=sock) myset.create() myset.insert_list(entries) myset_lists = load_all_ipsets(sock=sock, content=True)[self.name] for value in entries: assert value in myset_lists.content myset_list = load_ipset(self.name, sock=sock, content=True) for value in entries: assert value in myset_list.content myset.destroy()
def test_hashnet_with_comment(self, sock=None): comment = "abcdef" myset = WiSet(name=self.name, attr_type="hash:net", comment=True, sock=sock) myset.create() inherit_sock = sock is not None myset = load_ipset(self.name, sock=sock, inherit_sock=inherit_sock) assert myset.comment myset.add("192.168.1.1", comment=comment) myset.update_content() assert myset.content["192.168.1.1/32"].comment == comment myset.destroy()
def test_invalid_load_ipset(): assert load_ipset("ipsetdoesnotexists") is None