Skip to content

Commit

Permalink
Merge pull request #336 from Debilski/feature/keyerror
Browse files Browse the repository at this point in the history
  • Loading branch information
Debilski committed Apr 25, 2016
2 parents 70820f3 + c024847 commit 1b25ae1
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
4 changes: 2 additions & 2 deletions pelita/containers.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,12 @@ def _index_tuple_to_linear(self, index_tuple):
Raises
------
IndexError
KeyError
if the index is not within the range of the Mesh
"""
if index_tuple not in self:
raise IndexError(
raise KeyError(
'Mesh indexing error, requested coordinate: %r, but size is: (%i, %i)'
% (index_tuple, self.width, self.height))

Expand Down
2 changes: 1 addition & 1 deletion pelita/game_master.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ def altered_pos(self, bot_pos):
# check that the bot can really fit in here
if not self.universe.maze[pos]:
return pos
except IndexError:
except KeyError:
pass
# if we land here, no valid position has been found
return bot_pos
24 changes: 16 additions & 8 deletions test/test_containers.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,18 @@ def test_getitem(self):
self.assertEqual(m[1, 0], 2)
self.assertEqual(m[0, 1], 3)
self.assertEqual(m[1, 1], 4)
self.assertRaises(IndexError, m.__getitem__, (3, 0))
self.assertRaises(IndexError, m.__getitem__, (-1, 0))
self.assertRaises(IndexError, m.__getitem__, (0, 3))
self.assertRaises(IndexError, m.__getitem__, (0, -1))
self.assertRaises(KeyError, m.__getitem__, (3, 0))
self.assertRaises(KeyError, m.__getitem__, (-1, 0))
self.assertRaises(KeyError, m.__getitem__, (0, 3))
self.assertRaises(KeyError, m.__getitem__, (0, -1))
self.assertEqual(m.get((0, 0), 10), 1)
self.assertEqual(m.get((1, 0), 10), 2)
self.assertEqual(m.get((0, 1), 10), 3)
self.assertEqual(m.get((1, 1), 10), 4)
self.assertEqual(m.get((3, 0), 10), 10)
self.assertEqual(m.get((-1, 0), 10), 10)
self.assertEqual(m.get((0, 3), 10), 10)
self.assertEqual(m.get((0, -1), 10), 10)

def test_setitem(self):
m = Mesh(2, 2)
Expand All @@ -53,10 +61,10 @@ def test_setitem(self):
m[0, 1] = 3
m[1, 1] = 4
self.assertEqual(m._data, [1, 2, 3, 4])
self.assertRaises(IndexError, m.__setitem__, (3, 0), 1)
self.assertRaises(IndexError, m.__setitem__, (-1, 0), 1)
self.assertRaises(IndexError, m.__setitem__, (0, 3), 1)
self.assertRaises(IndexError, m.__setitem__, (0, -1), 1)
self.assertRaises(KeyError, m.__setitem__, (3, 0), 1)
self.assertRaises(KeyError, m.__setitem__, (-1, 0), 1)
self.assertRaises(KeyError, m.__setitem__, (0, 3), 1)
self.assertRaises(KeyError, m.__setitem__, (0, -1), 1)

def test_iter(self):
m = Mesh(2, 3)
Expand Down

0 comments on commit 1b25ae1

Please sign in to comment.