diff options
| author | Bob Halley <halley@dnspython.org> | 2005-09-02 05:32:59 +0000 |
|---|---|---|
| committer | Bob Halley <halley@dnspython.org> | 2005-09-02 05:32:59 +0000 |
| commit | cc161b2ddc100a00e920b37469ae6d03213f4aa1 (patch) | |
| tree | 11532ae1460a32fade18535cabd7288a73bf4914 | |
| parent | 1c459a1d39328893a5f5308a1931efbb0d381c7d (diff) | |
| download | dnspython-cc161b2ddc100a00e920b37469ae6d03213f4aa1.tar.gz | |
add get/del item/slice
Original author: Bob Halley <halley@dnspython.org>
Date: 2005-05-06 23:39:25
| -rw-r--r-- | dns/set.py | 14 | ||||
| -rw-r--r-- | tests/set.py | 34 |
2 files changed, 46 insertions, 2 deletions
@@ -1,4 +1,4 @@ -# Copyright (C) 2003-2005 Nominum, Inc. +# Copyright (C) 2003, 2004 Nominum, Inc. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose with or without fee is hereby granted, @@ -224,6 +224,18 @@ class Set(object): def __iter__(self): return iter(self.items) + def __getitem__(self, i): + return self.items[i] + + def __delitem__(self, i): + del self.items[i] + + def __getslice__(self, i, j): + return self.items[i:j] + + def __delslice__(self, i, j): + del self.items[i:j] + def issubset(self, other): """Is I{self} a subset of I{other}? diff --git a/tests/set.py b/tests/set.py index e2dd9b0..af55399 100644 --- a/tests/set.py +++ b/tests/set.py @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2005 Nominum, Inc. +# Copyright (C) 2003, 2004 Nominum, Inc. # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose with or without fee is hereby granted, @@ -172,5 +172,37 @@ class SimpleSetTestCase(unittest.TestCase): s1.update(u) self.failUnless(s1 == e) + def testGetitem(self): + s1 = S([1, 2, 3]) + i0 = s1[0] + i1 = s1[1] + i2 = s1[2] + s2 = S([i0, i1, i2]) + self.failUnless(s1 == s2) + + def testGetslice(self): + s1 = S([1, 2, 3]) + slice = s1[0:2] + self.failUnless(len(slice) == 2) + item = s1[2] + slice.append(item) + s2 = S(slice) + self.failUnless(s1 == s2) + + def testDelitem(self): + s1 = S([1, 2, 3]) + del s1[0] + i1 = s1[0] + i2 = s1[1] + self.failUnless(i1 != i2) + self.failUnless(i1 == 1 or i1 == 2 or i1 == 3) + self.failUnless(i2 == 1 or i2 == 2 or i2 == 3) + + def testDelslice(self): + s1 = S([1, 2, 3]) + del s1[0:2] + i1 = s1[0] + self.failUnless(i1 == 1 or i1 == 2 or i1 == 3) + if __name__ == '__main__': unittest.main() |
