import py
import autopath
from httpmp2.game import Game, Sprite

class FooSprite(Sprite):
    group = 'foogroup'

    def __init__(self, *args, **kwargs):
        super(FooSprite, self).__init__(*args, **kwargs)

    def calculate_state(self):
        self._times_state_calculated += 1

class TestGame(object):
    def setup_method(self, meth):
        self.game = Game()

    def test_sprite_accessors(self):
        sfoo = FooSprite('foo', self.game)
        self.game.add_sprite(sfoo)
        retrieved = self.game.get_sprite('foo')
        assert retrieved is sfoo
        group = self.game.get_sprite_group('foogroup')
        assert list(group) == [sfoo]
        sbar = FooSprite('bar', self.game)
        self.game.add_sprite(sbar)
        retrieved = self.game.get_sprite('bar')
        assert retrieved is sbar
        group = self.game.get_sprite_group('foogroup')
        assert sorted(list(group)) == sorted([sfoo, sbar])

        py.test.raises(KeyError, "self.game.get_sprite('baz')")


