예제 #1
0
    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()
예제 #2
0
    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()
예제 #3
0
    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()
예제 #4
0
    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()
예제 #5
0
 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()
예제 #6
0
    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
예제 #7
0
    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()
예제 #8
0
    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
예제 #9
0
    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()
예제 #10
0
    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()
예제 #11
0
    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()
예제 #12
0
    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()
예제 #13
0
 def test_invalid_load_ipset():
     assert load_ipset("ipsetdoesnotexists") is None