Source code for af.tests.test_data_factory

import inspect
import unittest

from af.controller.data.CSVController import CSVController
from af.controller.data.DataFactory import DataFactory
from af.controller.data.SqliteController import SqliteController


[docs]class TestDataFactory(unittest.TestCase):
[docs] def test_create_controller_ok(self): mock_location = 'location' controller_sql = DataFactory.create_controller(mock_location, SqliteController.CONTROLLER_TYPE) self.assertTrue(isinstance(controller_sql, SqliteController), "The controller created is not an instance of SqliteController") controller_csv = DataFactory.create_controller(mock_location, CSVController.CONTROLLER_TYPE) self.assertTrue(isinstance(controller_csv, CSVController), "The controller created is not an instance of CSVController")
[docs] def test_create_invalid_controller_fails(self): mock_location = 'location' inexistent_controller_type = 'INEXISTENT' failed_creation = False try: DataFactory.create_controller(mock_location, inexistent_controller_type) except ValueError: failed_creation = True self.assertTrue(failed_creation, "The method should have failed creating an unexistent controller")
[docs] def test_all_available_controllers_are_gathered_ok(self): available_controllers = DataFactory.get_available_controllers() print available_controllers self.assertTrue(len(available_controllers) == 2, "There should be only 2 data controllers") self.assertTrue(SqliteController.CONTROLLER_TYPE in available_controllers, "SqliteController not found on available controllers") self.assertTrue(CSVController.CONTROLLER_TYPE in available_controllers, "CSVController not found on available controllers")
[docs] def test_get_controller_file_extension_ok(self): sql_expected_extension = SqliteController.CONTROLLER_EXTENSION csv_expected_extension = CSVController.CONTROLLER_EXTENSION sql_extension = DataFactory.get_controller_file_extension(SqliteController.CONTROLLER_TYPE) csv_extension = DataFactory.get_controller_file_extension(CSVController.CONTROLLER_TYPE) self.assertEqual(sql_expected_extension, sql_extension, "The extensions do not match") self.assertEqual(csv_expected_extension, csv_extension, "The extensions do not match")
[docs] def test_fail_getting_inexistent_controller_extension(self): failed = False try: DataFactory.get_controller_file_extension('INEXISTENT') except ValueError: failed = True self.assertTrue(failed, "The method should have failed creating an unexistent controller")
[docs] def test_get_controller_from_extension_ok(self): extension = SqliteController.CONTROLLER_EXTENSION controller = DataFactory.get_controller_from_extension(extension) self.assertTrue(inspect.isclass(controller), "The controller retrieved is not the expected one") self.assertTrue(isinstance(controller('.'), SqliteController), "The controller retrieved is not the expected one")
[docs] def test_fail_get_controller_from_extension(self): failed = False try: DataFactory.get_controller_from_extension('INEXISTENT') except ValueError: failed = True self.assertTrue(failed, "The method should have failed looking for an unexistent controller with that extension")