Beispiel #1
0
def test_executable(arguments):
    """ Tests running the executable. """
    package_generator = PackageGenerator(arguments)
    generated_okay = package_generator.generate()
    if generated_okay == EXIT_OKAY:
        files = glob.glob(os.path.join(
            package_generator.args.directories['staging'],
            package_generator.args.info['app_version'],
            'gbtestapp-4.2.6-standalone*'
        ))

        cmd_output = check_output(files[0], universal_newlines=True)
        compare_file = open(os.path.join(
            "tests",
            "gbtestapp",
            "correct_stdout.txt"), "r").read()

        assert cmd_output == compare_file
    else:
        assert False
Beispiel #2
0
def test_no_output_but_sha():
    """Makes sure that when no output flag is on, no files are created."""
    args = Arguments(
        src_dir="src",
        extra_data=["gbextradata"],
        pkg_dir=os.path.join("tests", "gbtestapp"),
        sha=Arguments.OPTION_SHA_FILE,
        clean=True,
        no_file=True
    )
    package_generator = PackageGenerator(args)
    generated_okay = package_generator.generate()

    assert generated_okay == EXIT_OKAY \
        and not os.path.exists(PackageGenerator.INFO_FILE) \
        and not os.path.exists(PackageGenerator.FILES_FILE) \
        and not os.path.exists(PackageGenerator.ENVIRON_SCRIPT
                               + PackageGenerator.ENVIRON_SCRIPT_POSIX_EXT) \
        and not os.path.exists(PackageGenerator.ENVIRON_SCRIPT
                               + PackageGenerator.ENVIRON_SCRIPT_WIN_EXT) \
        and os.path.exists(package_generator.files["sha_w_path"])
Beispiel #3
0
def test_latest(latest_arguments):
    """
    Checks to make sure the latest directory is created and
    populated with standalone executable and SHA.
    """

    package_generator = PackageGenerator(latest_arguments)
    generated_okay = package_generator.generate()

    if generated_okay == EXIT_OKAY:

        latest_standalone = package_generator.args.formats["name"].format(
            an=package_generator.args.info['app_name'],
            v='latest',
            os=package_generator.args.info['operating_system'],
            m=package_generator.args.info['machine_type'])

        sa_files = glob.glob(
            os.path.join(package_generator.args.directories['staging'],
                         'latest', latest_standalone + '*'))

        sha_file = package_generator.args.formats["sha"].format(
            an=package_generator.args.info['app_name'],
            v='latest',
            os=package_generator.args.info['operating_system'],
            m=package_generator.args.info['machine_type'])

        sha_files = glob.glob(
            os.path.join(package_generator.args.directories['staging'],
                         'latest', sha_file))

        assert os.path.isdir(os.path.join(
            package_generator.args.directories['staging'],
            'latest')) \
            and sa_files \
            and sha_files
    else:
        assert False
Beispiel #4
0
def test_file_sha(arguments):
    """
    Checks the generated sha hash written to file with one that is
    freshly calculated. Also checks that info file exists and has the
    correct app name and version.
    """

    # get the sha256 hash from the json file
    package_generator = PackageGenerator(arguments)
    generated_okay = package_generator.generate()
    if generated_okay == EXIT_OKAY:
        # get the info from info file
        with open(PackageGenerator.INFO_FILE, "r") as info_file:
            info = json.loads(info_file.read())

        with open(package_generator.files["sha_w_path"], "r") as sha_file:
            sha_dict = json.loads(sha_file.read())

        assert info['file_sha'] \
            == PackageGenerator.get_hash(info['gen_file_w_path']) \
            == sha_dict[info['gen_file']]
    else:
        assert False
Beispiel #5
0
def test_file_label():
    """ Test if GravityBee writes correct label in gravitybee-files.json. """

    label_prefix = "GBTESTapp YO"
    arguments = Arguments(
        src_dir="src",
        extra_data=["gbextradata"],
        pkg_dir=os.path.join("tests", "gbtestapp"),
        sha=Arguments.OPTION_SHA_FILE,
        clean=True,
        label_format=label_prefix + " {v} {ft} for {os}"
    )
    package_generator = PackageGenerator(arguments)
    generated_okay = package_generator.generate()
    if generated_okay == EXIT_OKAY:
        with open(
            os.path.join(FILE_DIR, "gravitybee-files.json"), "r"
        ) as sa_file:
            gb_files = json.loads(sa_file.read())

        assert gb_files[0]['label'].startswith(label_prefix)
    else:
        assert False
Beispiel #6
0
def test_generation(arguments):
    """ Tests generating the executable. """
    package_generator = PackageGenerator(arguments)
    generated_okay = package_generator.generate()

    assert generated_okay == EXIT_OKAY