X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=bindings%2Fpython-cffi%2Ftests%2Ftest_tags.py;fp=bindings%2Fpython-cffi%2Ftests%2Ftest_tags.py;h=faf3947b6090f901a63f5828c962fc64e395591f;hb=a00f3a1f7a646d9834a5de57a29cf3e900dbdcdf;hp=f12fa1e6b94dbdc4a14ae3efe574c233e1cf7ed3;hpb=963e363a234f1c8bdf1ae68956f80a2538bee7dc;p=notmuch diff --git a/bindings/python-cffi/tests/test_tags.py b/bindings/python-cffi/tests/test_tags.py index f12fa1e6..faf3947b 100644 --- a/bindings/python-cffi/tests/test_tags.py +++ b/bindings/python-cffi/tests/test_tags.py @@ -50,6 +50,22 @@ class TestImmutable: assert 'unread' in tagset assert 'foo' not in tagset + def test_isdisjoint(self, tagset): + assert tagset.isdisjoint(set(['spam', 'ham'])) + assert not tagset.isdisjoint(set(['inbox'])) + + def test_issubset(self, tagset): + assert {'inbox'} <= tagset + assert {'inbox'}.issubset(tagset) + assert tagset <= {'inbox', 'unread', 'spam'} + assert tagset.issubset({'inbox', 'unread', 'spam'}) + + def test_issuperset(self, tagset): + assert {'inbox', 'unread', 'spam'} >= tagset + assert {'inbox', 'unread', 'spam'}.issuperset(tagset) + assert tagset >= {'inbox'} + assert tagset.issuperset({'inbox'}) + def test_iter(self, tagset): expected = sorted(['unread', 'inbox']) found = [] @@ -78,18 +94,30 @@ class TestImmutable: assert isinstance(common, set) assert isinstance(common, collections.abc.Set) assert common == {'unread'} + common = tagset.intersection({'unread'}) + assert isinstance(common, set) + assert isinstance(common, collections.abc.Set) + assert common == {'unread'} def test_or(self, tagset): res = tagset | {'foo'} assert isinstance(res, set) assert isinstance(res, collections.abc.Set) assert res == {'unread', 'inbox', 'foo'} + res = tagset.union({'foo'}) + assert isinstance(res, set) + assert isinstance(res, collections.abc.Set) + assert res == {'unread', 'inbox', 'foo'} def test_sub(self, tagset): res = tagset - {'unread'} assert isinstance(res, set) assert isinstance(res, collections.abc.Set) assert res == {'inbox'} + res = tagset.difference({'unread'}) + assert isinstance(res, set) + assert isinstance(res, collections.abc.Set) + assert res == {'inbox'} def test_rsub(self, tagset): res = {'foo', 'unread'} - tagset @@ -102,6 +130,10 @@ class TestImmutable: assert isinstance(res, set) assert isinstance(res, collections.abc.Set) assert res == {'inbox', 'foo'} + res = tagset.symmetric_difference({'unread', 'foo'}) + assert isinstance(res, set) + assert isinstance(res, collections.abc.Set) + assert res == {'inbox', 'foo'} def test_rxor(self, tagset): res = {'unread', 'foo'} ^ tagset @@ -109,6 +141,12 @@ class TestImmutable: assert isinstance(res, collections.abc.Set) assert res == {'inbox', 'foo'} + def test_copy(self, tagset): + res = tagset.copy() + assert isinstance(res, set) + assert isinstance(res, collections.abc.Set) + assert res == {'inbox', 'unread'} + class TestMutableTagset: @@ -175,3 +213,27 @@ class TestMutableTagset: msg.tags.to_maildir_flags() flags = msg.path.name.split(',')[-1] assert 'F' not in flags + + def test_isdisjoint(self, tagset): + assert tagset.isdisjoint(set(['spam', 'ham'])) + assert not tagset.isdisjoint(set(['inbox'])) + + def test_issubset(self, tagset): + assert {'inbox'} <= tagset + assert {'inbox'}.issubset(tagset) + assert not {'spam'} <= tagset + assert not {'spam'}.issubset(tagset) + assert tagset <= {'inbox', 'unread', 'spam'} + assert tagset.issubset({'inbox', 'unread', 'spam'}) + assert not {'inbox', 'unread', 'spam'} <= tagset + assert not {'inbox', 'unread', 'spam'}.issubset(tagset) + + def test_issuperset(self, tagset): + assert {'inbox', 'unread', 'spam'} >= tagset + assert {'inbox', 'unread', 'spam'}.issuperset(tagset) + assert tagset >= {'inbox'} + assert tagset.issuperset({'inbox'}) + + def test_union(self, tagset): + assert {'spam'}.union(tagset) == {'inbox', 'unread', 'spam'} + assert tagset.union({'spam'}) == {'inbox', 'unread', 'spam'}