view gamelib/tests/test_lab.py @ 20:718d1ec382f7

Deserialise lab data.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 06 May 2012 18:12:51 +0200
parents 10d3db1f1e08
children bdc6bfc34ef2
line wrap: on
line source

from unittest import TestCase

from gamelib.lab import Lab
from gamelib import research, products


class TestLab(TestCase):
    def test_new_lab(self):
        all_sciences = set()
        for _ in range(10):
            lab = Lab()
            research_areas = [r for r in lab.science
                              if isinstance(r, research.ResearchArea)]
            self.assertEqual(3, len(research_areas))
            for science in research_areas:
                all_sciences.add(type(science))
        self.assertTrue(len(all_sciences) > 3)

    def test_find_new_products(self):
        lab = Lab({
                'science': {
                    'research.Tesla': 3,
                    }
                })
        new_products = lab.find_new_products(None)
        self.assertTrue(products.TeslaTank in new_products)
        self.assertTrue(products.DoomsdayVirus not in new_products)

    def test_find_new_research(self):
        lab = Lab({
                'science': {
                    'research.Robotics': 1,
                    'research.Rocketry': 2,
                    }
                })
        new_research = lab.find_new_research()
        self.assertTrue(research.Space in new_research)
        self.assertTrue(research.ArtificialIntelligence not in new_research)