コード例 #1
0
 def setup(self):
     super(TestDoorModule, self).setup()
     self.module = DoorModule()
コード例 #2
0
 def setup(self):
     super(TestDoorModule, self).setup()
     self.module = DoorModule()
コード例 #3
0
class TestDoorModule(BaseTestCase, TemporaryWritableFileTestCase):
    def setup(self):
        super(TestDoorModule, self).setup()
        self.module = DoorModule()

    def teardown(self):
        super(TestDoorModule, self).teardown()
        del self.module

    @nottest
    def test_read_from_rom_using_rom(self, rom):
        self.module.read_from_rom(rom)

        # Very simple verification by checking the amount of different types of doors that were read
        assert_equal(len(self.module.door_areas), 40 * 32)
        num_door_types = dict()
        num_empty_areas = 0
        for area in self.module.door_areas:
            if area is not None and len(area) > 0:
                for door in area:
                    if door.__class__.__name__ not in num_door_types:
                        num_door_types[door.__class__.__name__] = 1
                    else:
                        num_door_types[door.__class__.__name__] += 1
            else:
                num_empty_areas += 1
        assert_equal(num_empty_areas, 679)
        assert_dict_equal(num_door_types, {
            "SwitchDoor": 6,
            "EscalatorOrStairwayDoor": 92,
            "Door": 1072,
            "NpcDoor": 269,
            "RopeOrLadderDoor": 641,
        })

    def test_read_from_rom(self):
        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.test_read_from_rom_using_rom(rom)

    @nottest
    def test_read_from_project_using_filename(self, filename):
        with open(filename, 'r', encoding="utf-8") as doors_file:
            def resource_open(a, b, astext):
                return doors_file

            self.module.read_from_project(resource_open)

        # Very simple verification by checking the amount of different types of doors that were read
        assert_equal(len(self.module.door_areas), 40 * 32)
        num_door_types = dict()
        num_empty_areas = 0
        for area in self.module.door_areas:
            if area is not None and len(area) > 0:
                for door in area:
                    if door.__class__.__name__ not in num_door_types:
                        num_door_types[door.__class__.__name__] = 1
                    else:
                        num_door_types[door.__class__.__name__] += 1
            else:
                num_empty_areas += 1
        assert_equal(num_empty_areas, 679)
        assert_dict_equal(num_door_types, {
            "SwitchDoor": 6,
            "EscalatorOrStairwayDoor": 92,
            "Door": 1072,
            "NpcDoor": 269,
            "RopeOrLadderDoor": 641,
        })

    def test_write_to_project(self):
        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.module.read_from_rom(rom)

        def resource_open(a, b, astext):
            return self.temporary_wo_file

        self.module.write_to_project(resource_open)

        assert_true(os.path.isfile(self.temporary_wo_file_name))
        self.temporary_wo_file.close()
        self.test_read_from_project_using_filename(self.temporary_wo_file_name)

    def test_write_to_rom(self):
        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.module.read_from_rom(rom)

        def resource_open(a, b, astext):
            return self.temporary_wo_file

        self.module.write_to_project(resource_open)

        self.temporary_wo_file = open(self.temporary_wo_file_name, encoding="utf-8", newline="\n")
        self.module.read_from_project(resource_open)

        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.module.write_to_rom(rom)
            self.test_read_from_rom_using_rom(rom)
コード例 #4
0
class TestDoorModule(BaseTestCase, TemporaryWritableFileTestCase):
    def setup(self):
        super(TestDoorModule, self).setup()
        self.module = DoorModule()

    def teardown(self):
        super(TestDoorModule, self).teardown()
        del self.module

    @nottest
    def test_read_from_rom_using_rom(self, rom):
        self.module.read_from_rom(rom)

        # Very simple verification by checking the amount of different types of doors that were read
        assert_equal(len(self.module.door_areas), 40 * 32)
        num_door_types = dict()
        num_empty_areas = 0
        for area in self.module.door_areas:
            if area is not None and len(area) > 0:
                for door in area:
                    if door.__class__.__name__ not in num_door_types:
                        num_door_types[door.__class__.__name__] = 1
                    else:
                        num_door_types[door.__class__.__name__] += 1
            else:
                num_empty_areas += 1
        assert_equal(num_empty_areas, 679)
        assert_dict_equal(num_door_types, {
            "SwitchDoor": 6,
            "EscalatorOrStairwayDoor": 92,
            "Door": 1072,
            "NpcDoor": 269,
            "RopeOrLadderDoor": 641,
        })

    def test_read_from_rom(self):
        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.test_read_from_rom_using_rom(rom)

    @nottest
    def test_read_from_project_using_filename(self, filename):
        with open(filename, 'r') as doors_file:
            def resource_open(a, b):
                return doors_file

            self.module.read_from_project(resource_open)

        # Very simple verification by checking the amount of different types of doors that were read
        assert_equal(len(self.module.door_areas), 40 * 32)
        num_door_types = dict()
        num_empty_areas = 0
        for area in self.module.door_areas:
            if area is not None and len(area) > 0:
                for door in area:
                    if door.__class__.__name__ not in num_door_types:
                        num_door_types[door.__class__.__name__] = 1
                    else:
                        num_door_types[door.__class__.__name__] += 1
            else:
                num_empty_areas += 1
        assert_equal(num_empty_areas, 679)
        assert_dict_equal(num_door_types, {
            "SwitchDoor": 6,
            "EscalatorOrStairwayDoor": 92,
            "Door": 1072,
            "NpcDoor": 269,
            "RopeOrLadderDoor": 641,
        })

    def test_write_to_project(self):
        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.module.read_from_rom(rom)

        def resource_open(a, b):
            return self.temporary_wo_file

        self.module.write_to_project(resource_open)

        assert_true(os.path.isfile(self.temporary_wo_file_name))
        self.temporary_wo_file.close()
        self.test_read_from_project_using_filename(self.temporary_wo_file_name)

    def test_write_to_rom(self):
        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.module.read_from_rom(rom)

        def resource_open(a, b):
            return self.temporary_wo_file

        self.module.write_to_project(resource_open)

        self.temporary_wo_file = open(self.temporary_wo_file_name)
        self.module.read_from_project(resource_open)

        with Rom() as rom:
            rom.from_file(os.path.join(TEST_DATA_DIR, 'roms', 'real_EarthBound.smc'))
            self.module.write_to_rom(rom)
            self.test_read_from_rom_using_rom(rom)