def prepare_configurations_as_task(taskname, levelno=20, username=None): """Prepare the configurations for validation. This task has the same functionality as function ``prepare_configurations`` """ logger = logging.getLogger(taskname) logger.info('Start the preparations of configurations') config_store = ConfigurationStore() config_store.logger = logger config_store.supply() logger.info('END PREPARATION')
def setUp(self): self.db = MockDatabase() area = self.db.Area() area.ident = '3201' area.save() data_set = self.db.DataSet() data_set.name = 'Waternet' data_set.save() self.store = ConfigurationStore() self.store.db = self.db self.store.extract = Mock() self.store.delete = Mock() self.store.retrieve_zip_names = lambda: ['waterbalans_Waternet_04042012_081400.zip'] self.store.retrieve_attrs_from_config = lambda dir_name, config_type: [{'area_code': '3201'}]
class ConfigurationStoreTestSuite(TestCase): def setUp(self): self.db = MockDatabase() area = self.db.Area() area.ident = '3201' area.save() data_set = self.db.DataSet() data_set.name = 'Waternet' data_set.save() self.store = ConfigurationStore() self.store.db = self.db self.store.extract = Mock() self.store.delete = Mock() self.store.retrieve_zip_names = lambda: ['waterbalans_Waternet_04042012_081400.zip'] self.store.retrieve_attrs_from_config = lambda dir_name, config_type: [{'area_code': '3201'}] def get_file_path(self, zip_name): return os.path.join(settings.DBF_ROOT, zip_name) def test_a(self): """Test the creation of a single ConfigurationToValidate.""" self.store.supply() self.assertEqual(1, self.db.configurations.count()) def test_b(self): """Test the file path of the new ConfigurationToValidate is correct. The zip name does not contain a path. """ self.store.supply() config = self.db.configurations.all()[0] self.assertEqual( self.get_file_path('waterbalans_Waternet_04042012_081400'), config.file_path) def test_c(self): """Test the file path of the new ConfigurationToValidate is correct. The zip name contains a path. """ self.store.retrieve_zip_names = lambda: ['/mnt/vss-shared/te-valideren-configuraties/waterbalans_Waternet_04042012_081400.zip'] self.store.supply() config = self.db.configurations.all()[0] self.assertEqual( self.get_file_path('waterbalans_Waternet_04042012_081400'), config.file_path) def test_d(self): """Test the area of the new ConfigurationToValidate is correct.""" self.store.supply() config = self.db.configurations.all()[0] self.assertEqual(self.db.areas.all()[0], config.area) def test_e(self): """Test the config type of the new ConfigurationToValidate is correct. """ self.store.supply() config = self.db.configurations.all()[0] self.assertEqual('waterbalans', config.config_type) def test_f(self): """Test the water manager of the new ConfigurationToValidate is correct. """ self.store.supply() config = self.db.configurations.all()[0] self.assertEqual('Waternet', config.data_set.name) def test_g(self): """Test the action of the new ConfigurationToValidate is correct.""" self.store.supply() config = self.db.configurations.all()[0] self.assertEqual(ConfigurationToValidate.KEEP, config.action) def test_h(self): """Test retrieve_attrs_from_config is called correctly.""" self.store.retrieve_attrs_from_config = Mock( return_value=self.store.retrieve_attrs_from_config( "don't care", "don't care")) self.store.supply() args, kwargs = self.store.retrieve_attrs_from_config.call_args self.assertEqual( self.get_file_path('waterbalans_Waternet_04042012_081400'), args[0]) self.assertEqual('waterbalans', args[1]) def test_i(self): """Test the zip file is deleted as soon as it has been handled.""" self.store.supply() args, kwargs = self.store.delete.call_args self.assertEqual('waterbalans_Waternet_04042012_081400.zip', args[0]) def test_j(self): """Test a zip file that is named incorrectly, is skipped.""" self.store.retrieve_zip_names = lambda: ['incorrectly named.zip'] self.store.supply() self.assertFalse(self.store.extract.called)