Changeset 8844655 in trunk
- Timestamp:
- 2010-08-04T18:45:49Z (15 years ago)
- Branches:
- master
- Children:
- cd8d415
- Parents:
- 2bd8749
- Location:
- src/allmydata
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/allmydata/immutable/downloader/share.py ¶
r2bd8749 r8844655 260 260 # and sometimes you can't even get what you need 261 261 disappointment = needed & self._unavailable 262 if len(disappointment):262 if disappointment.len(): 263 263 self.had_corruption = True 264 264 raise DataUnavailable("need %s but will never get it" % -
TabularUnified src/allmydata/test/test_download.py ¶
r2bd8749 r8844655 320 320 self.failIfEqual(shares, [0,1,2]) 321 321 d.addCallback(_check_failover) 322 return d 323 324 def test_long_offset(self): 325 # bug #1154: mplayer doing a seek-to-end results in an offset of type 326 # 'long', rather than 'int', and apparently __len__ is required to 327 # return an int. Rewrote Spans/DataSpans to provide s.len() instead 328 # of len(s) . 329 self.basedir = self.mktemp() 330 self.set_up_grid() 331 self.c0 = self.g.clients[0] 332 self.load_shares() 333 n = self.c0.create_node_from_uri(immutable_uri) 334 335 c = MemoryConsumer() 336 d = n.read(c, 0L, 10L) 337 d.addCallback(lambda c: len("".join(c.chunks))) 338 d.addCallback(lambda size: self.failUnlessEqual(size, 10)) 322 339 return d 323 340 -
TabularUnified src/allmydata/test/test_util.py ¶
r2bd8749 r8844655 1615 1615 yield (prevstart, prevend-prevstart+1) 1616 1616 1617 def __len__(self): 1618 # this also gets us bool(s) 1617 def __nonzero__(self): # this gets us bool() 1618 return self.len() 1619 1620 def len(self): 1619 1621 return len(self._have) 1620 1622 … … 1660 1662 self.failIf(s) 1661 1663 self.failIf((0,1) in s) 1662 self.failUnlessEqual( len(s), 0)1664 self.failUnlessEqual(s.len(), 0) 1663 1665 1664 1666 s1 = Spans(3, 4) # 3,4,5,6 … … 1673 1675 self.failIf((10,1) in s1) 1674 1676 self.failUnlessEqual(list(s2.each()), [3,4,5,6,10,11]) 1675 self.failUnlessEqual( len(s2), 6)1677 self.failUnlessEqual(s2.len(), 6) 1676 1678 1677 1679 s2.add(15,2).add(20,2) 1678 1680 self.failUnlessEqual(list(s2.each()), [3,4,5,6,10,11,15,16,20,21]) 1679 self.failUnlessEqual( len(s2), 10)1681 self.failUnlessEqual(s2.len(), 10) 1680 1682 1681 1683 s2.remove(4,3).remove(15,1) 1682 1684 self.failUnlessEqual(list(s2.each()), [3,10,11,16,20,21]) 1683 self.failUnlessEqual( len(s2), 6)1685 self.failUnlessEqual(s2.len(), 6) 1684 1686 1685 1687 s1 = SimpleSpans(3, 4) # 3 4 5 6 … … 1691 1693 self.failUnlessEqual(list(s), [(3,4)]) 1692 1694 self.failUnless(s) 1693 self.failUnlessEqual( len(s), 4)1695 self.failUnlessEqual(s.len(), 4) 1694 1696 self.failIf((0,1) in s) 1695 1697 self.failUnless((3,4) in s) … … 1818 1820 #print "s2 now %s" % s2.dump() 1819 1821 self.failUnlessEqual(list(s1.each()), list(s2.each())) 1820 self.failUnlessEqual( len(s1), len(s2))1822 self.failUnlessEqual(s1.len(), s2.len()) 1821 1823 self.failUnlessEqual(bool(s1), bool(s2)) 1822 1824 self.failUnlessEqual(list(s1), list(s2)) … … 1838 1840 # (start,length) in s -> True if (start..start+length-1) are all members 1839 1841 # NOT equivalent to x in list(s) 1840 # len(s) -> number of bytes, for testing, bool(), and accounting/limiting1841 # bool(s) (__ len__)1842 # s.len() -> number of bytes, for testing, bool(), and accounting/limiting 1843 # bool(s) (__nonzeron__) 1842 1844 # s = s1+s2, s1-s2, +=s1, -=s1 1843 1845 … … 1894 1896 self.add(start, data) 1895 1897 1896 def __len__(self): 1898 def __nonzero__(self): # this gets us bool() 1899 return self.len() 1900 def len(self): 1897 1901 return len(self.missing.replace("1", "")) 1898 1902 def _dump(self): … … 1931 1935 def do_basic(self, klass): 1932 1936 ds = klass() 1933 self.failUnlessEqual( len(ds), 0)1937 self.failUnlessEqual(ds.len(), 0) 1934 1938 self.failUnlessEqual(list(ds._dump()), []) 1935 1939 self.failUnlessEqual(sum([len(d) for (s,d) in ds.get_chunks()]), 0) … … 1940 1944 1941 1945 ds.add(2, "four") 1942 self.failUnlessEqual( len(ds), 4)1946 self.failUnlessEqual(ds.len(), 4) 1943 1947 self.failUnlessEqual(list(ds._dump()), [2,3,4,5]) 1944 1948 self.failUnlessEqual(sum([len(d) for (s,d) in ds.get_chunks()]), 4) … … 1950 1954 1951 1955 ds2 = klass(ds) 1952 self.failUnlessEqual( len(ds2), 4)1956 self.failUnlessEqual(ds2.len(), 4) 1953 1957 self.failUnlessEqual(list(ds2._dump()), [2,3,4,5]) 1954 1958 self.failUnlessEqual(sum([len(d) for (s,d) in ds2.get_chunks()]), 4) … … 1963 1967 1964 1968 ds.add(0, "23") 1965 self.failUnlessEqual( len(ds), 6)1969 self.failUnlessEqual(ds.len(), 6) 1966 1970 self.failUnlessEqual(list(ds._dump()), [0,1,2,3,4,5]) 1967 1971 self.failUnlessEqual(sum([len(d) for (s,d) in ds.get_chunks()]), 6) … … 2126 2130 #print "s1 now %s" % list(s1._dump()) 2127 2131 #print "s2 now %s" % list(s2._dump()) 2128 self.failUnlessEqual( len(s1), len(s2))2132 self.failUnlessEqual(s1.len(), s2.len()) 2129 2133 self.failUnlessEqual(list(s1._dump()), list(s2._dump())) 2130 2134 for j in range(100): -
TabularUnified src/allmydata/util/spans.py ¶
r2bd8749 r8844655 141 141 142 142 def dump(self): 143 return "len=%d: %s" % ( len(self),143 return "len=%d: %s" % (self.len(), 144 144 ",".join(["[%d-%d]" % (start,start+l-1) 145 145 for (start,l) in self._spans]) ) … … 154 154 yield s 155 155 156 def __len__(self): 157 # this also gets us bool(s) 156 def __nonzero__(self): # this gets us bool() 157 return self.len() 158 159 def len(self): 160 # guess what! python doesn't allow __len__ to return a long, only an 161 # int. So we stop using len(spans), use spans.len() instead. 158 162 return sum([length for start,length in self._spans]) 159 163 … … 229 233 self.add(start, data) 230 234 231 def __len__(self): 235 def __nonzero__(self): # this gets us bool() 236 return self.len() 237 238 def len(self): 232 239 # return number of bytes we're holding 233 240 return sum([len(data) for (start,data) in self.spans]) … … 240 247 241 248 def dump(self): 242 return "len=%d: %s" % ( len(self),249 return "len=%d: %s" % (self.len(), 243 250 ",".join(["[%d-%d]" % (start,start+len(data)-1) 244 251 for (start,data) in self.spans]) )
Note: See TracChangeset
for help on using the changeset viewer.