Esempio n. 1
0
    def process_args(self):
        MODULE = 'new_ingest_benchmark'
        SUITE = 'benchmark'

        self.INPUT_DIR = dbutil.input_directory(MODULE, SUITE)
        self.OUTPUT_DIR = dbutil.output_directory(MODULE, SUITE)
        self.EXPECTED_DIR = dbutil.expected_directory(MODULE, SUITE)
        #define three modes of execution
        mode_desc_dict = {0: 'Initialise benchmark data in the expected directory',
                          1: 'Do not do ingestion. Compare existing ingestion ' \
                          'in\n %s\n with benchmark\n %s\n' \
                          %(self.OUTPUT_DIR, self.EXPECTED_DIR),
                          2: 'Compare  from this run with ' \
                          'expected benchmark database exiting if ' \
                          'they are different',
                          3: 'Compare databases and also compare tiles, even if ' \
                          'the databases are different'}
        if len(sys.argv) < 2:
            mode = -1
        else:
            try:
                mode = int(sys.argv[1])
            except ValueError:
                mode = -1
        msg = ''
        if mode not in [0, 1, 2, 3]:
            msg =  'Please specify a mode as follows:\n'
            for mode_num, desc in mode_desc_dict.items():
                msg = msg + 'python test_landsat_tiler.py %d:\t%s\n' %(mode_num, desc)
        return mode, msg
Esempio n. 2
0
    def test_output_directory_1(self):
        "Test test output directory finder/creator, test 1."

        dummy_user = dbutil.random_name("user")
        expected_path = os.path.join(dbutil.TEST_RESOURCES_ROOT, dummy_user, "output", "module", "suite")
        try:
            path = dbutil.output_directory("module", "suite", user=dummy_user)
            self.check_directory(path, expected_path)
        finally:
            os.removedirs(path)
Esempio n. 3
0
    def test_output_directory_2(self):
        "Test test output directory finder/creator, test 2."

        dummy_user = dbutil.random_name("user")
        expected_path = os.path.join(dbutil.TEST_RESOURCES_ROOT, dummy_user, "output", "module", "suite")
        old_user = os.environ["USER"]

        try:
            os.environ["USER"] = dummy_user
            path = dbutil.output_directory("module", "suite")
            self.check_directory(path, expected_path)
        finally:
            os.environ["USER"] = old_user
            os.removedirs(path)
Esempio n. 4
0
    def test_update_config_file(self):
        "Test config file update utility."

        input_dir = dbutil.input_directory(self.MODULE, self.SUITE)
        output_dir = dbutil.output_directory(self.MODULE, self.SUITE)
        expected_dir = dbutil.expected_directory(self.MODULE, self.SUITE)

        dbname = "TEST_TEST_TEST"
        config_file_name = "test_datacube.conf"

        output_path = dbutil.update_config_file(dbname, input_dir, output_dir, config_file_name)

        expected_path = os.path.join(expected_dir, config_file_name)
        if not os.path.isfile(expected_path):
            self.skipTest("Expected config file not found.")
        else:
            try:
                subprocess.check_output(["diff", output_path, expected_path])
            except subprocess.CalledProcessError as err:
                self.fail("Config file does not match expected result:\n" + err.output)
Esempio n. 5
0
    def test_update_config_file2(self):
        "Test config file update utility, version 2."

        input_dir = dbutil.input_directory(self.MODULE, self.SUITE)
        output_dir = dbutil.output_directory(self.MODULE, self.SUITE)
        expected_dir = dbutil.expected_directory(self.MODULE, self.SUITE)

        updates = {"dbname": "TEST_DBNAME", "temp_dir": "TEST_TEMP_DIR", "tile_root": "TEST_TILE_ROOT"}
        config_file_name = "test_datacube.conf"
        output_file_name = "test2_datacube.conf"

        output_path = dbutil.update_config_file2(updates, input_dir, output_dir, config_file_name, output_file_name)

        expected_path = os.path.join(expected_dir, output_file_name)
        if not os.path.isfile(expected_path):
            self.skipTest("Expected config file not found.")
        else:
            try:
                subprocess.check_output(["diff", output_path, expected_path])
            except subprocess.CalledProcessError as err:
                self.fail("Config file does not match expected result:\n" + err.output)
Esempio n. 6
0
    def check_output(self, file_name, output_str):
        """Check the output against an expected output file.

        This method also writes the output to a temporary
        directory, and skips the test if the expected output
        file is not present. The temporary output can be used as
        the expected output if it passes a manual check."""

        output_dir_path = dbutil.output_directory(MODULE, self.SUITE)
        output_file_path = os.path.join(output_dir_path, file_name)
        with open(output_file_path, "w") as output_file:
            output_file.write(output_str)

        expected_dir_path = dbutil.expected_directory(MODULE, self.SUITE)
        expected_file_path = os.path.join(expected_dir_path, file_name)
        if os.path.isfile(expected_file_path):
            with open(expected_file_path) as expected_file:
                expected_str = expected_file.read()
            self.assertEqual(output_str, expected_str)
        else:
            self.skipTest(
                ("expected output file '%s' not found for " + "module '%s', suite '%s'.")
                % (file_name, MODULE, self.SUITE)
            )