Esempio n. 1
0
    def test_level_generator_is_created(self):
        """
        Test that portal adder has level generator set to it
        """
        portal_config = [PortalAdderConfiguration(icons = (1, 2),
                                                  level_type = 'catacombs',
                                                  location_type = 'room',
                                                  chance = 100,
                                                  new_level = 'upper crypt',
                                                  unique = False)]

        level_generator_factory = mock(LevelGeneratorFactory)
        level_generator = mock(LevelGenerator)

        when(level_generator_factory).get_generator(any()).thenReturn(level_generator)

        factory = PortalAdderFactory(portal_config,
                                     self.rng)
        factory.level_generator_factory = level_generator_factory

        portal_adders = factory.create_portal_adders('catacombs')

        portal_adder = portal_adders[0]

        assert_that(portal_adder.level_generator,
                    is_(same_instance(level_generator)))
Esempio n. 2
0
    def test_handling_no_matches(self):
        """
        Test that portal adder factory graciously returns empty list when
        no match has been found
        """
        portal_config = [PortalAdderConfiguration(icons = (1, 2),
                                                  level_type = 'catacombs',
                                                  location_type = 'room',
                                                  chance = 100,
                                                  new_level = 'upper crypt',
                                                  unique = False),
                         PortalAdderConfiguration(icons = (1, 2),
                                                  level_type = 'upper crypt',
                                                  location_type = 'room',
                                                  chance = 100,
                                                  new_level = 'lower crypt',
                                                  unique = False)
                                                 ]

        factory = PortalAdderFactory(portal_config,
                                     self.rng)

        portal_adders = factory.create_portal_adders('castle')

        assert_that(portal_adders, has_length(0))
Esempio n. 3
0
    def test_removing_unique_portal_adders(self):
        """
        Test that unique portal adder specificatin is removed from configuration
        after it has been used first time
        """
        portal_config = [PortalAdderConfiguration(icons = (1, 2),
                                                  level_type = 'catacombs',
                                                  location_type = 'room',
                                                  chance = 100,
                                                  new_level = 'upper crypt',
                                                  unique = True),
                         PortalAdderConfiguration(icons = (1, 2),
                                                  level_type = 'upper crypt',
                                                  location_type = 'room',
                                                  chance = 100,
                                                  new_level = 'lower crypt',
                                                  unique = False)
                                                 ]

        factory = PortalAdderFactory(portal_config,
                                     self.rng)
        factory.level_generator_factory = mock()

        portal_adders = factory.create_portal_adders('catacombs')

        assert_that(factory.config, has_length(1))
Esempio n. 4
0
    def test_level_type_is_respected(self):
        """
        Test that portal adder factory respects level type
        """
        portal_config = [PortalAdderConfiguration(icons = (1, 2),
                                                  level_type = 'catacombs',
                                                  location_type = 'room',
                                                  chance = 100,
                                                  new_level = 'upper crypt',
                                                  unique = False),
                         PortalAdderConfiguration(icons = (1, 2),
                                                  level_type = 'upper crypt',
                                                  location_type = 'room',
                                                  chance = 100,
                                                  new_level = 'lower crypt',
                                                  unique = False)
                                                 ]

        factory = PortalAdderFactory(portal_config,
                                     self.rng)
        factory.level_generator_factory = mock()

        portal_adders = factory.create_portal_adders('catacombs')

        assert_that(portal_adders, has_length(1))