shithub: pokecrystal

Download patch

ref: 1a3aebf191f7e99a497b64bd863928bbf72b88f7
parent: bd7453f70cb209bd0201d2e0bdcef9d85462dd77
author: Bryan Bishop <kanzure@gmail.com>
date: Mon Apr 2 07:45:42 EDT 2012

make tests pass the first time they are ran

--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -445,6 +445,7 @@
         return len(self)
     def __repr__(self):
         return "RomStr(too long)"
+rom = RomStr(None)
 def load_rom(filename="../baserom.gbc"):
     """loads bytes into memory"""
     global rom
@@ -452,6 +453,16 @@
     rom = RomStr(file_handler.read())
     file_handler.close()
     return rom
+def maybe_load_rom(filename="../baserom.gbc"):
+    """checks that the loaded rom matches the path
+    and then loads the rom if necessary."""
+    global rom
+    if rom != RomStr(None) and rom != None:
+        return rom
+    if not isinstance(rom, RomStr):
+        return load_rom(filename=filename)
+    elif os.lstat(filename).st_size != len(rom):
+        return load_rom(filename)
 
 class AsmList(list):
     """simple wrapper to prevent all asm lines from being shown on screen"""
@@ -6608,6 +6619,7 @@
 class TestByteParams(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
+        maybe_load_rom()
         cls.address = 10
         cls.sbp = SingleByteParam(address=cls.address)
     @classmethod
--