From 14d9b6ead7473beb6c2c664882bccec06ecc4132 Mon Sep 17 00:00:00 2001
From: Andrew Ekstedt <andrew.ekstedt@gmail.com>
Date: Thu, 15 Mar 2012 17:46:25 -0700
Subject: [PATCH] Fix test_media.py.

- Add --media-root option (was half-supported already, but not accepted
  on the command line).

- Don't test for Colosseum and XD graphics, since we have none.

- Acknowledge *-beta sprites.
---
 pokedex/tests/test_media.py | 11 +++++++++++
 pokedex/util/media.py       |  5 ++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/pokedex/tests/test_media.py b/pokedex/tests/test_media.py
index 375c94d..48f213e 100644
--- a/pokedex/tests/test_media.py
+++ b/pokedex/tests/test_media.py
@@ -13,6 +13,11 @@ import re
 from pokedex.db import tables, connect
 from pokedex.util import media
 
+def pytest_addoption(parser):
+    group = parser.getgroup("pokedex")
+    group.addoption("--media-root", dest="media_root", action="store", default=None,
+        help="path to pokedex-media")
+
 def pytest_funcarg__root(request):
     root = request.config.option.media_root
     if not root:
@@ -119,6 +124,10 @@ def test_get_everything(root, pytestconfig):
     versions = list(session.query(tables.Version).all())
     versions.append('red-green')
 
+    # We don't have any graphics for Colosseum or XD
+    versions.remove(session.query(tables.Version).filter_by(identifier=u'colosseum').one())
+    versions.remove(session.query(tables.Version).filter_by(identifier=u'xd').one())
+
     black = session.query(tables.Version).filter_by(identifier=u'black').one()
 
     filenames = get_all_filenames(root)
@@ -243,6 +252,8 @@ def test_get_everything(root, pytestconfig):
     for filename in filenames:
         if filename.startswith(exceptions):
             unaccessed_filenames.remove(filename)
+        if filename.endswith('-beta.png'):
+            unaccessed_filenames.remove(filename)
 
     if unaccessed_filenames:
         print 'Unaccessed files:'
diff --git a/pokedex/util/media.py b/pokedex/util/media.py
index 7b672b3..0b4f60d 100644
--- a/pokedex/util/media.py
+++ b/pokedex/util/media.py
@@ -193,7 +193,10 @@ class _BasePokemonMedia(BaseMedia):
                 version_group = version.version_group
                 version_dir = '-'.join(
                         v.identifier for v in version_group.versions)
-                generation, info = self._pokemon_sprite_info[version_dir]
+                try:
+                    generation, info = self._pokemon_sprite_info[version_dir]
+                except KeyError:
+                    raise ValueError('Version directory %s not found', version_dir)
         if generation < self.introduced_in:
             raise ValueError("Pokemon %s didn't exist in %s" % (
                     self.species_id, version_dir))