import unittest from munch import Munch from mosfet.info import items from mosfet.job import JobStates class TestCropCaching(unittest.TestCase): def test_crop_farm_runs_silent_cache_machine_and_keeps_seeds(self): old_wanted = items.WANTED_ITEMS supply_state = object() crop_state = object() cache_state = Munch(silent=False) sleep_state = Munch(silent=False) eat_state = object() jobs = JobStates.__new__(JobStates) jobs.grab_supplies_states = supply_state jobs.gather_crop_states = crop_state jobs.cache_items_states = cache_state jobs.sleep_with_bed_states = sleep_state jobs.eat_food_states = eat_state try: machines = JobStates.farm_crop(jobs) self.assertEqual( machines, [supply_state, crop_state, sleep_state, eat_state, cache_state]) self.assertTrue(cache_state.silent) self.assertTrue(sleep_state.silent) self.assertTrue({ items.CARROT_ID, items.POTATO_ID, items.WHEAT_SEEDS_ID, items.BEETROOT_SEEDS_ID, }.issubset(items.WANTED_ITEMS)) finally: items.WANTED_ITEMS = old_wanted if __name__ == '__main__': unittest.main()