diff 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 diff
--- a/gamelib/tests/test_lab.py	Sun May 06 17:39:38 2012 +0200
+++ b/gamelib/tests/test_lab.py	Sun May 06 18:12:51 2012 +0200
@@ -5,27 +5,34 @@
 
 
 class TestLab(TestCase):
-    def setUp(self):
-        self.lab = Lab()
+    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):
-        # Set up the appropriate research.
-        if research.Tesla in self.lab.new_research:
-            self.lab._gain_science(research.Tesla(1))
-        self.lab._get_science(research.Tesla).points += 2
-        # Check breakthrough options.
-        new_products = self.lab.find_new_products(None)
+        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):
-        # Set up the appropriate research.
-        if research.Robotics in self.lab.new_research:
-            self.lab._gain_science(research.Robotics(1))
-        if research.Rocketry in self.lab.new_research:
-            self.lab._gain_science(research.Rocketry(1))
-        self.lab._get_science(research.Rocketry).points += 1
-        # Check breakthrough options.
-        new_research = self.lab.find_new_research()
+        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)