示例#1
0
    def test_validation_from_json(self):
        with ScratchDir("."):
            os.environ["BEEP_PROCESSING_DIR"] = os.getcwd()
            os.mkdir("data-share")
            os.mkdir(os.path.join("data-share", "validation"))
            paths = [
                "2017-05-09_test-TC-contact_CH33.csv",
                "2017-12-04_4_65C-69per_6C_CH29.csv",
            ]
            paths = [os.path.join(TEST_FILE_DIR, path) for path in paths]
            # Create dummy json obj
            json_obj = {
                "file_list": paths,
                "run_list": list(range(len(paths))),
            }
            json_string = json.dumps(json_obj)
            json_output = validate_file_list_from_json(json_string)
            loaded = json.loads(json_output)
        self.assertEqual(loaded["validity"][0], "invalid")
        self.assertEqual(loaded["validity"][1], "valid")

        # Workflow output
        output_file_path = Path(tempfile.gettempdir()) / "results.json"
        self.assertTrue(output_file_path.exists())

        output_json = json.loads(output_file_path.read_text())

        self.assertEqual(paths[0], output_json["filename"])
        self.assertEqual(os.path.getsize(output_json["filename"]),
                         output_json["size"])
        self.assertEqual(0, output_json["run_id"])
        self.assertEqual("validating", output_json["action"])
        self.assertEqual("invalid", output_json["status"])
    def test_python(self):
        """Python script for end to end test"""
        # Copy
        mapped = collate.process_files_json()
        rename_output = json.loads(mapped)
        rename_output['mode'] = self.events_mode  # mode run|test|events_off
        rename_output['run_list'] = list(range(len(
            rename_output['file_list'])))
        mapped = json.dumps(rename_output)

        # Validation
        validated = validate.validate_file_list_from_json(mapped)
        validated_output = json.loads(validated)
        validated_output['mode'] = self.events_mode  # mode run|test|events_off
        validated_output['run_list'] = list(
            range(len(validated_output['file_list'])))
        validated = json.dumps(validated_output)

        # Data structuring
        structured = structure.process_file_list_from_json(validated)
        structured_output = json.loads(structured)
        structured_output[
            'mode'] = self.events_mode  # mode run|test|events_off
        structured_output['run_list'] = list(
            range(len(structured_output['file_list'])))
        structured = json.dumps(structured_output)

        # Featurization
        featurized = featurize.process_file_list_from_json(structured)
        featurized_output = json.loads(featurized)
        featurized_output[
            'mode'] = self.events_mode  # mode run|test|events_off
        featurized_output['run_list'] = list(
            range(len(featurized_output['file_list'])))
        featurized = json.dumps(featurized_output)

        # Prediction
        predictions = run_model.process_file_list_from_json(
            featurized, model_dir=MODEL_DIR)

        # Validate output files
        self._check_result_file_validity()
示例#3
0
 def test_validation_from_json(self):
     with ScratchDir('.'):
         os.environ['BEEP_PROCESSING_DIR'] = os.getcwd()
         os.mkdir("data-share")
         os.mkdir(os.path.join("data-share", "validation"))
         paths = [
             "2017-05-09_test-TC-contact_CH33.csv",
             "2017-12-04_4_65C-69per_6C_CH29.csv"
         ]
         paths = [os.path.join(TEST_FILE_DIR, path) for path in paths]
         # Create dummy json obj
         json_obj = {
             "mode": self.events_mode,
             "file_list": paths,
             'run_list': list(range(len(paths)))
         }
         json_string = json.dumps(json_obj)
         json_output = validate_file_list_from_json(json_string)
         loaded = json.loads(json_output)
     self.assertEqual(loaded['validity'][0], 'invalid')
     self.assertEqual(loaded['validity'][1], 'valid')