diff --git a/bitmask/bitmask.py b/bitmask/bitmask.py index e95a7da..dcf34bc 100644 --- a/bitmask/bitmask.py +++ b/bitmask/bitmask.py @@ -158,13 +158,6 @@ class Bitmask: """Alias the + operator in reverse.""" return self.__add__(other) - def __iadd__(self, other): - """Implement += operator. - - Aliased to `Bitmask.__add__`. - """ - return self + other - def __or__(self, other): """Implement | operator.""" return self + other @@ -173,13 +166,6 @@ class Bitmask: """Alias the | operator in reverse.""" return self.__or__(other) - def __ior__(self, other): - """Implement |= operator. - - Aliased to `Bitmask.__add__`. - """ - return self | other - def __xor__(self, other): """Implement ^ operator.""" return self.__mask_op(other, lambda a, b : a ^ b) @@ -188,13 +174,6 @@ class Bitmask: """Alias the ^ operator in reverse.""" return self.__xor__(other) - def __ixor(self, other): - """Implement ^= operator. - - Aliased to `Bitmask.__xor__`. - """ - return self ^ other - def __and__(self, other): """AND bitmasks/flags together.""" return self.__mask_op(other, lambda a, b : a & b) @@ -203,25 +182,10 @@ class Bitmask: """Alias the & operator in reverse.""" return self.__and__(other) - def __iand(self, other): - """AND bitmasks/flags together. - - Aliased to `Bitmask.__and__`. - """ - return self & other - def __sub__(self, other): """Subtract by bitmask/flag.""" return self.__mask_op(other, lambda a, b : a & ~b) - def __isub__(self, other): - """Subtract a bitmask/flag. - - Aliased to `Bitmask.__sub__`. - """ - self = self - other - return self - def discard(self, flag): """Remove flag bitmask if present. diff --git a/tests/test_bitmask.py b/tests/test_bitmask.py index 42539b7..b1ea889 100644 --- a/tests/test_bitmask.py +++ b/tests/test_bitmask.py @@ -11,21 +11,31 @@ class Desc(IntFlag): FUNKY = 1 << 2 SONAR = 1 << 4 +class Colors(IntFlag): + TEAL = 1 + PINK = 1 << 1 + BLUE = 1 << 2 + def test_eq(): """Test equality checks.""" + # Equality assert Bitmask(Desc) == Bitmask(Desc) assert Bitmask(Desc, Desc.SMALL) == Bitmask(Desc, Desc.SMALL) assert Bitmask(Desc, Desc.SMALL, Desc.ROUND) == Bitmask(Desc, Desc.SMALL, Desc.ROUND) assert Bitmask(Desc, Desc.ROUND, Desc.SMALL) == Bitmask(Desc, Desc.SMALL, Desc.ROUND) + # Inequality assert Bitmask(Desc, Desc.SMALL) != Bitmask(Desc, Desc.SMALL, Desc.ROUND) assert Bitmask(Desc, Desc.SMALL) != Bitmask(Desc, Desc.ROUND) assert Bitmask(Desc, Desc.SMALL) != Bitmask(Desc) assert Bitmask(Desc, Desc.SMALL) != Desc.SMALL assert Bitmask(Desc, Desc.SMALL) != Desc.ROUND assert Bitmask(Desc) != Desc.ROUND + + # Wrong types assert Bitmask(Desc) != "Hello World!" assert Bitmask(Desc) != 0 + assert Bitmask(Desc) != Bitmask(Colors) def test_repr(): """Ensure evaluating __repr__ creates an identical object.""" @@ -49,6 +59,8 @@ def test_add(): with pytest.raises(TypeError, match="can only apply Desc to Bitmask"): mask.add(1) + with pytest.raises(TypeError, match="can only apply Bitmask or Desc to Bitmask"): + mask += 1 def test_add_operator(): """Test + operator."""