def test_add_lifestage_model(self,get_g,m_ls): self.make_grass_mock(get_g.return_value) # Assume no appropriate files in tmp c = config.get_config() m = ModelRepository(self.temp_dir) m2 = ModelRepository() a_file = m2.get_models()['lifestage_test'] self.create_mock_location(self.temp_dir) self.assertEqual(len(m.get_models()), 0) # add location to model, save as new dm = DispersalModel(a_file) dm.set_location('grass_location') temp_model_fn = os.path.join(os.path.dirname(a_file),"with_location_model.xml") dm.save_model(filename=temp_model_fn) get_g.return_value.get_range.return_value = [ 'xxxxxx10' ] * 10 get_g.return_value.raster_value_freq.return_value = [ [1],[2],[3] ] m_ls.return_value = {} # and then try to add m.add_model(temp_model_fn) self.assertEqual(len(m.get_models()), 1) # more tests about lifestage resources? self.remove_mock_location(self.temp_dir)
def test_add_lifestage_model(self, get_g, m_ls): self.make_grass_mock(get_g.return_value) # Assume no appropriate files in tmp c = config.get_config() m = ModelRepository(self.temp_dir) m2 = ModelRepository() a_file = m2.get_models()['lifestage_test'] self.create_mock_location(self.temp_dir) self.assertEqual(len(m.get_models()), 0) # add location to model, save as new dm = DispersalModel(a_file) dm.set_location('grass_location') temp_model_fn = os.path.join(os.path.dirname(a_file), "with_location_model.xml") dm.save_model(filename=temp_model_fn) get_g.return_value.get_range.return_value = ['xxxxxx10'] * 10 get_g.return_value.raster_value_freq.return_value = [[1], [2], [3]] m_ls.return_value = {} # and then try to add m.add_model(temp_model_fn) self.assertEqual(len(m.get_models()), 1) # more tests about lifestage resources? self.remove_mock_location(self.temp_dir)
self.assertEqual(len(m.get_models()), 1) self.remove_mock_location(self.temp_dir) # test when mapset already exists with the name of model get_g.return_value.check_mapset.return_value = True m.get_models = Mock() m.get_models.return_value = {'variables':'blreerger'} self.assertRaises(mdig.modelrepository.RepositoryException,m.add_model,temp_model_fn) get_g.return_value.check_mapset.return_value = False m = ModelRepository(self.temp_dir) # test what happens if we can't create new mapset get_g.return_value.change_mapset.return_value = False self.create_mock_location(self.temp_dir) try: m.add_model(temp_model_fn) os.remove(temp_model_fn) self.fail("RepositoryException not generated") except RepositoryException, e: self.assertTrue("Couldn't create mapset" in str(e)) self.remove_mock_location(self.temp_dir) get_g.return_value.change_mapset.return_value = True # test response when failure to create mdig dir get_g.return_value.create_mdig_subdir.side_effect = OSError('test') self.create_mock_location(self.temp_dir) self.assertRaises(RepositoryException,m.add_model,temp_model_fn) self.assertEqual(len(m.get_models()), 0) self.remove_mock_location(self.temp_dir) os.remove(temp_model_fn)
self.remove_mock_location(self.temp_dir) # test when mapset already exists with the name of model get_g.return_value.check_mapset.return_value = True m.get_models = Mock() m.get_models.return_value = {'variables': 'blreerger'} self.assertRaises(mdig.modelrepository.RepositoryException, m.add_model, temp_model_fn) get_g.return_value.check_mapset.return_value = False m = ModelRepository(self.temp_dir) # test what happens if we can't create new mapset get_g.return_value.change_mapset.return_value = False self.create_mock_location(self.temp_dir) try: m.add_model(temp_model_fn) os.remove(temp_model_fn) self.fail("RepositoryException not generated") except RepositoryException, e: self.assertTrue("Couldn't create mapset" in str(e)) self.remove_mock_location(self.temp_dir) get_g.return_value.change_mapset.return_value = True # test response when failure to create mdig dir get_g.return_value.create_mdig_subdir.side_effect = OSError('test') self.create_mock_location(self.temp_dir) self.assertRaises(RepositoryException, m.add_model, temp_model_fn) self.assertEqual(len(m.get_models()), 0) self.remove_mock_location(self.temp_dir) os.remove(temp_model_fn)