def test_no_output(): """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"), clean=True, no_file=True ) package_generator = PackageGenerator(args) generated_okay = package_generator.generate() sha_filename = package_generator.args.formats["sha"].format( an=package_generator.args.info['app_name'], v=package_generator.args.info['app_version'], os=package_generator.args.info['operating_system'], m=package_generator.args.info['machine_type'] ) 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 not os.path.exists(sha_filename)
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: sa_file = open( os.path.join( FILE_DIR, "gravitybee-files.json" ), "r" ) gb_files = json.loads(sa_file.read()) sa_file.close() assert gb_files[0]['label'].startswith(label_prefix) else: assert False
def arguments(): """Returns an Arguments instance using the included app""" return Arguments(src_dir="src", extra_data=["gbextradata"], pkg_dir=os.path.join("tests", "gbtestapp"), sha=Arguments.OPTION_SHA_FILE, clean=True)
def test_hook_with_extras(): """ Tests that the hook generated matches what is expected when including "extras" packages in the app """ arguments = Arguments(src_dir="src", extra_data=["gbextradata"], pkg_dir=os.path.join("tests", "gbtestapp"), sha=Arguments.OPTION_SHA_FILE, include_setup_extras=True, clean=False) package_generator = PackageGenerator(arguments) generated_okay = package_generator.generate() if generated_okay == EXIT_OKAY: generated_hook = (Path(package_generator.args.directories['work']) / 'hooks' / 'hook-gbtestapp.py').read_text(encoding='utf-8') suffix = "" if platform.system().lower() == "windows": suffix = "_windows" compare_file = ( Path("tests") / "gbtestapp" / ("correct_hook_with_extras" + suffix + ".txt")).read_text( encoding='utf-8') assert generated_hook == compare_file else: assert False
def test_extra_pkgs_modules(): """Makes sure everything works with an extra package and module.""" args = Arguments( src_dir="src", extra_data=["gbextradata"], pkg_dir=os.path.join("tests", "gbtestapp"), clean=False, extra_pkgs=["PyYAML"], extra_modules=["yaml"], ) package_generator = PackageGenerator(args) generated_okay = package_generator.generate() assert generated_okay == EXIT_OKAY
def testapp2_arguments(): """Returns an Arguments instance using the included app. This app tests packaging an app that has differently named packages and also has multiple packages (gbtest2, gbextradata2)""" return Arguments( src_dir="src", extra_data=["../gbextradata2"], pkg_dir=os.path.join("tests", "testapp2"), app_name="testapp2", pkg_name="gbtest2", sha=Arguments.OPTION_SHA_FILE, clean=True, )
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"])
def testing_defaults(): """Return an Arguments instance for testing defaults""" if not os.getcwd().endswith(os.path.join("tests", "gbtestapp")): os.chdir(os.path.join("tests", "gbtestapp")) return Arguments()