def itervalues(self):
"""Return an iterator over all messages."""
- for key in self.keys():
+ for key in self.iterkeys():
try:
value = self[key]
except KeyError:
def iteritems(self):
"""Return an iterator over (key, message) tuples."""
- for key in self.keys():
+ for key in self.iterkeys():
try:
value = self[key]
except KeyError:
def popitem(self):
"""Delete an arbitrary (key, message) pair and return it."""
- for key in self.keys():
+ for key in self.iterkeys():
return (key, self.pop(key)) # This is only run once.
else:
raise KeyError('No messages in mailbox')
def update(self, arg=None):
"""Change the messages that correspond to certain keys."""
if hasattr(arg, 'iteritems'):
- source = arg.items()
+ source = arg.iteritems()
elif hasattr(arg, 'items'):
source = arg.items()
else:
def next(self):
"""Return the next message in a one-time iteration."""
if not hasattr(self, '_onetime_keys'):
- self._onetime_keys = iter(self.keys())
+ self._onetime_keys = self.iterkeys()
while True:
try:
return self[next(self._onetime_keys)]
def __len__(self):
"""Return a count of messages in the mailbox."""
- return len(list(self.keys()))
+ return len(list(self.iterkeys()))
def lock(self):
"""Lock the mailbox."""
sequences = self.get_sequences()
prev = 0
changes = []
- for key in self.keys():
+ for key in self.iterkeys():
if key - 1 != prev:
changes.append((key, prev + 1))
if hasattr(os, 'link'):
def test_iterkeys(self):
# Get keys using iterkeys()
- self._check_iteration(self._box.keys, do_keys=True, do_values=False)
+ self._check_iteration(self._box.iterkeys, do_keys=True, do_values=False)
def test_keys(self):
# Get keys using keys()
def test_itervalues(self):
# Get values using itervalues()
- self._check_iteration(self._box.values, do_keys=False,
+ self._check_iteration(self._box.itervalues, do_keys=False,
do_values=True)
def test_iter(self):
def test_iteritems(self):
# Get keys and values using iteritems()
- self._check_iteration(self._box.items, do_keys=True,
+ self._check_iteration(self._box.iteritems, do_keys=True,
do_values=True)
def test_items(self):
self.assertRaises(NotImplementedError, lambda: box.__delitem__(''))
self.assertRaises(NotImplementedError, lambda: box.discard(''))
self.assertRaises(NotImplementedError, lambda: box.__setitem__('', ''))
+ self.assertRaises(NotImplementedError, lambda: box.iterkeys())
self.assertRaises(NotImplementedError, lambda: box.keys())
- self.assertRaises(NotImplementedError, lambda: box.keys())
- self.assertRaises(NotImplementedError, lambda: box.values().__next__())
+ self.assertRaises(NotImplementedError, lambda: box.itervalues().__next__())
self.assertRaises(NotImplementedError, lambda: box.__iter__().__next__())
self.assertRaises(NotImplementedError, lambda: box.values())
- self.assertRaises(NotImplementedError, lambda: box.items().next())
+ self.assertRaises(NotImplementedError, lambda: box.iteritems().__next__())
self.assertRaises(NotImplementedError, lambda: box.items())
self.assertRaises(NotImplementedError, lambda: box.get(''))
self.assertRaises(NotImplementedError, lambda: box.__getitem__(''))
mtime = os.path.getmtime(self._path)
self._box = self._factory(self._path)
self.assertEqual(len(self._box), 3)
- for key in self._box.keys():
+ for key in self._box.iterkeys():
self.assertIn(self._box.get_string(key), values)
self._box.close()
self.assertEqual(mtime, os.path.getmtime(self._path))