Exemple #1
0
    def test_metadata_basic_types(self):
        # Core is tested thoroughly through the C++ unit tests here we focus on the python api side
        md = Metadata(1)
        assert md.is_integer
        assert int(md) == 1
        assert md.value == 1

        md = Metadata(-1, signed=True)
        assert md.is_signed_integer
        assert int(md) == -1
        assert md.value == -1
        md = Metadata(1, signed=False)
        assert md.is_unsigned_integer
        assert int(md) == 1
        md = Metadata(3.14)
        assert md.is_float
        assert float(md) == 3.14
        assert md.value == 3.14

        md = Metadata("asdf")
        assert md.is_string
        assert str(md) == "asdf"
        assert len(md) == 4
        assert md.value == "asdf"

        md = Metadata("\x00\x00\x41\x00", raw=True)
        assert md.is_raw
        assert len(md) == 4
        assert str(md) == "\x00\x00\x41\x00"
        assert md.value == "\x00\x00\x41\x00"
Exemple #2
0
    def test_metadata_compound_types(self):
        md = Metadata([1, 2, 3])
        assert md.is_array
        assert md.value == [1, 2, 3]
        assert len(md) == 3
        assert md[0] == 1
        assert md[1] == 2
        assert md[2] == 3
        assert isinstance(list(md), list)
        md.remove(0)
        assert len(md) == 2
        assert md == [2, 3]

        md = Metadata({"a": 1, "b": 2})
        assert md.is_dict
        assert len(md) == 2
        assert md.value == {"a": 1, "b": 2}
        assert md["a"] == 1
        assert md["b"] == 2
        md.remove("a")
        assert len(md) == 1
        assert md == {"b": 2}
Exemple #3
0
    def test_metadata_equality(self):
        assert Metadata(1) == 1
        assert Metadata(1) != 0
        assert Metadata(1) == Metadata(1)
        assert Metadata(1) != Metadata(0)

        assert Metadata(3.14) == 3.14
        assert Metadata(3.14) == Metadata(3.14)
        assert Metadata(3.14) != 3.1
        assert Metadata(3.14) != Metadata(3.1)

        assert Metadata("asdf") == "asdf"
        assert Metadata("asdf") == Metadata("asdf")
        assert Metadata("asdf") != "qwer"
        assert Metadata("asdf") != Metadata("qwer")

        assert Metadata("as\x00df", raw=True) == "as\x00df"
        assert Metadata("as\x00df", raw=True) == Metadata("as\x00df", raw=True)
        assert Metadata("as\x00df", raw=True) != "qw\x00er"
        assert Metadata("as\x00df", raw=True) != Metadata("qw\x00er", raw=True)

        assert Metadata([1, 2, 3]) == [1, 2, 3]
        assert Metadata([1, 2, 3]) == Metadata([1, 2, 3])
        assert Metadata([1, 2, 3]) != [1, 2]
        assert Metadata([1, 2, 3]) != Metadata([1, 2])

        assert Metadata({"a": 1, "b": 2}) == {"a": 1, "b": 2}
        assert Metadata({"a": 1, "b": 2}) == Metadata({"a": 1, "b": 2})
        assert Metadata({"a": 1, "b": 2}) != {"a": 1}
        assert Metadata({"a": 1, "b": 2}) != Metadata({"a": 1})