Mercurial > sypikslang
view gamelib/tests/test_lab.py @ 98:e386ec5d179b
The game can end
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 09 May 2012 22:03:07 +0200 |
parents | 373c57ab4140 |
children | ef63532cac13 |
line wrap: on
line source
from unittest import TestCase from gamelib.lab import Lab from gamelib import research, schematics LAB_DATA = { 'science': { 'research.Robotics': 1, 'research.Rocketry': 2, 'research.Tesla': 3, }, } 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_schematics(self): lab = Lab(LAB_DATA) new_schematics = lab.find_new_schematics() self.assertTrue(schematics.TeslaTank in new_schematics) self.assertTrue(schematics.DoomsdayVirus not in new_schematics) def test_find_new_research(self): lab = Lab(LAB_DATA) new_research = lab.find_new_research() self.assertTrue(research.Space in new_research) self.assertTrue(research.ArtificialIntelligence not in new_research) def test_save_data(self): # Check that we save what we loaded. lab = Lab(LAB_DATA) self.assertEqual(LAB_DATA, lab.save_data()) # Add a schematic and check that it gets saved as well. lab._gain_science(schematics.LightningGun()) new_science = dict( LAB_DATA['science'].items() + [('schematic.LightningGun', 0)]) self.assertEqual({'science': new_science}, lab.save_data())