def test_spin_up_and_run_container():
    """Test spin up and run container"""
    client, cont_id = ridc.spin_up_and_run_container("featurize", "/tmp")
    conts = client.containers(all=True)
    found_match = False
    for cont in conts:
        if cont["Id"] == cont_id:
            found_match = True
            break
    client.remove_container(container=cont_id, force=True)
    assert found_match
def test_copy_results_files_featurize():
    """Test copy results files - featurize"""
    copied_data_dir = os.path.join(cfg.PROJECT_PATH, "tmp",
                                   str(uuid.uuid4())[:10])
    os.makedirs(copied_data_dir)
    featurize_setup()
    shutil.copy(
        pjoin(DATA_PATH, "testfeature1.py"),
        cfg.CUSTOM_FEATURE_SCRIPT_FOLDER)
    headerfile_path = pjoin(
        cfg.UPLOAD_FOLDER, "asas_training_subset_classes_with_metadata.dat")
    zipfile_path = pjoin(cfg.UPLOAD_FOLDER,
                         "asas_training_subset.tar.gz")
    features_to_use = ["std_err", "freq1_harmonics_freq_0"]
    featureset_key = "TEST01"
    is_test = True
    already_featurized = False
    custom_script_path = pjoin(cfg.CUSTOM_FEATURE_SCRIPT_FOLDER,
                               "testfeature1.py")
    args_dict = locals()
    tmp_files = ridc.copy_data_files_featurize_prep(args_dict)
    client, cont_id = ridc.spin_up_and_run_container("featurize",
                                                     copied_data_dir)
    ridc.copy_results_files_featurize(featureset_key, client, cont_id)
    shutil.rmtree(copied_data_dir, ignore_errors=True)
    assert(os.path.exists(pjoin(cfg.FEATURES_FOLDER,
                                "TEST01_features.csv")))
    assert(os.path.exists(pjoin(cfg.FEATURES_FOLDER,
                                "TEST01_classes.npy")))
    assert(os.path.exists(pjoin(pjoin(cfg.MLTSP_PACKAGE_PATH,
                                      "Flask/static/data"),
                                "TEST01_features_with_classes.csv")))
    os.remove(pjoin(cfg.FEATURES_FOLDER, "TEST01_classes.npy"))
    os.remove(pjoin(cfg.FEATURES_FOLDER, "TEST01_features.csv"))
    os.remove(pjoin(pjoin(cfg.MLTSP_PACKAGE_PATH,
                          "Flask/static/data"),
                    "TEST01_features_with_classes.csv"))
    featurize_teardown()