def test_defaults(): """Test auto generated metadata from module is as expected.""" runner = CliRunner() result = runner.invoke(ramp.pack, [MODULE_FILE_PATH, '-o', BUNDLE_ZIP_FILE]) assert result.exit_code == 0 metadata, _ = unpacker.unpack(BUNDLE_ZIP_FILE) assert metadata["module_name"] == "graph" assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == 'x86_64' assert metadata["version"] == MODULE_VERSION assert metadata["semantic_version"] == MODULE_SEMANTIC_VERSION assert metadata["display_name"] == module_metadata.DISPLAY_NAME assert metadata["author"] == module_metadata.AUTHOR assert metadata["email"] == module_metadata.EMAIL assert metadata["description"] == module_metadata.DESCRIPTION assert metadata["homepage"] == module_metadata.HOMEPAGE assert metadata["license"] == module_metadata.LICENSE assert metadata["command_line_args"] == module_metadata.COMMAND_LINE_ARGS assert metadata["min_redis_version"] == module_metadata.MIN_REDIS_VERSION assert metadata[ "min_redis_pack_version"] == module_metadata.MIN_REDIS_PACK_VERSION assert metadata["config_command"] == module_metadata.CONFIG_COMMAND assert metadata["capabilities"] == module_metadata.MODULE_CAPABILITIES assert metadata[ "ramp_format_version"] == module_metadata.RAMP_FORMAT_VERSION assert metadata["sha256"] == sha256_checksum(MODULE_FILE_PATH) assert metadata["os_list"] == module_metadata.OS_LIST validate_module_commands(metadata["commands"])
def test_bundle_from_menifest(): """ Test metadata generated from menifest file is as expected. """ runner = CliRunner() result = runner.invoke( ramp.pack, [MODULE_FILE_PATH, '-m', MENIFEST_FILE_PATH, '-o', BUNDLE_ZIP_FILE]) assert result.exit_code == 0 metadata, _ = unpacker.unpack(BUNDLE_ZIP_FILE) assert metadata["module_name"] == "graph" assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == "x86_64" assert metadata["version"] == MODULE_VERSION assert metadata["semantic_version"] == MODULE_SEMANTIC_VERSION assert metadata["sha256"] == sha256_checksum(MODULE_FILE_PATH) assert metadata["config_command"] == CONFIG_COMMAND assert metadata["os_list"] == module_metadata.OS_LIST with open(MENIFEST_FILE_PATH, 'r') as f: manifest = yaml.load(f) for key in manifest: assert metadata[key] == manifest[key] commands = metadata["commands"] validate_module_commands(commands)
def test_bundle_from_cmd(): """ Test metadata generated from command line arguments is as expected. """ author = "redislabs" email = "*****@*****.**" description = "desc some module" homepage = "http://github.com/redismodules/module" _license = "AGPL" command_line_args = "\"-output f --level debug\"" min_redis_version = "4.6" min_redis_pack_version = "5.0" display_name = "test_module" module_name = "module_test" os_list = ["ubuntu14.04"] argv = [ MODULE_FILE_PATH, '-a', author, '-e', email, '-D', description, '-ol', os_list, '-d', display_name, '-n', module_name, '-h', homepage, '-l', _license, '-c', command_line_args, '-r', min_redis_version, '-R', min_redis_pack_version, '-C', ','.join([cap['name'] for cap in MODULE_CAPABILITIES]), '-o', BUNDLE_ZIP_FILE, '-cc', CONFIG_COMMAND, '-E', 'graph.bulk', '-E', 'graph.BULK', '--overide-command', '{"command_name": "graph.EXPLAIN"}' ] runner = CliRunner() result = runner.invoke(ramp.pack, argv) assert result.exit_code == 0 metadata, _ = unpacker.unpack(BUNDLE_ZIP_FILE) assert metadata["module_name"] == module_name assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == "x86_64" assert metadata["display_name"] == display_name assert metadata["version"] == MODULE_VERSION assert metadata["semantic_version"] == MODULE_SEMANTIC_VERSION assert metadata["author"] == author assert metadata["email"] == email assert metadata["description"] == description assert metadata["homepage"] == homepage assert metadata["license"] == _license assert metadata["command_line_args"] == command_line_args assert metadata["min_redis_version"] == min_redis_version assert metadata["min_redis_pack_version"] == min_redis_pack_version assert metadata["config_command"] == CONFIG_COMMAND assert metadata["sha256"] == sha256_checksum(MODULE_FILE_PATH) assert metadata["os_list"] == os_list assert len(metadata["capabilities"]) == len(MODULE_CAPABILITIES) git_sha = get_git_sha() if git_sha is not None: assert metadata["git_sha"] == git_sha commands = metadata["commands"] validate_module_commands(commands)
def test_valid_bundle(): """ test bundle extraction """ module_path = os.path.join(os.getcwd(), MODULE_FILE_PATH) path_to_bundle = os.path.join(os.getcwd(), BUNDLE_ZIP_FILE) metadata = module_metadata.create_default_metadata(module_path) metadata['module_name'] = 'module_name' packer.archive(module_path, metadata) metadata, binary = unpacker.unpack(path_to_bundle) assert metadata is not None assert binary is not None
def test_bundle_from_cmd(): """ Test metadata generated from command line arguments is as expected. """ author = "redislabs" email = "*****@*****.**" description = "desc some module" homepage = "http://github.com/redismodules/module" _license = "AGPL" command_line_args = "\"-output f --level debug\"" min_redis_version = "4.6" min_redis_pack_version = "5.0" display_name = "test_module" argv = [ MODULE_FILE_PATH, '-a', author, '-e', email, '-D', description, '-d', display_name, '-h', homepage, '-l', _license, '-c', command_line_args, '-r', min_redis_version, '-R', min_redis_pack_version, '-C', ','.join([cap['name'] for cap in MODULE_CAPABILITIES]), '-o', BUNDLE_ZIP_FILE ] runner = CliRunner() result = runner.invoke(ramp.pack, argv) assert result.exit_code == 0 metadata, _ = unpacker.unpack(BUNDLE_ZIP_FILE) assert metadata["module_name"] == "graph" assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == "x86_64" assert metadata["display_name"] == display_name assert metadata["version"] == MODULE_VERSION assert metadata["semantic_version"] == MODULE_SEMANTIC_VERSION assert metadata["author"] == author assert metadata["email"] == email assert metadata["description"] == description assert metadata["homepage"] == homepage assert metadata["license"] == _license assert metadata["command_line_args"] == command_line_args assert metadata["min_redis_version"] == min_redis_version assert metadata["min_redis_pack_version"] == min_redis_pack_version assert metadata["sha256"] == sha256_checksum(MODULE_FILE_PATH) assert len(metadata["capabilities"]) == len(MODULE_CAPABILITIES) commands = metadata["commands"] validate_module_commands(commands)
def _test_bundle_from_menifest(manifest_file, manifest_file_path): """ Test metadata generated from menifest file is as expected. """ runner = CliRunner() result = runner.invoke( ramp.pack, [MODULE_FILE_PATH, '-m', manifest_file_path, '-o', BUNDLE_ZIP_FILE]) assert result.exit_code == 0 metadata, _ = unpacker.unpack(BUNDLE_ZIP_FILE) assert metadata["module_name"] == "graph" assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == "x86_64" assert metadata["version"] == MODULE_VERSION assert metadata["semantic_version"] == MODULE_SEMANTIC_VERSION assert metadata["sha256"] == sha256_checksum(MODULE_FILE_PATH) assert metadata["config_command"] == CONFIG_COMMAND git_sha = get_git_sha() if git_sha is not None: assert metadata["git_sha"] == git_sha with open(MENIFEST_FILE_PATH, 'r') as f: manifest = yaml.load(f) for key in manifest: if key == 'dependencies': assert metadata[key] == unpacker.normalize_dependencies( manifest[key]) else: assert metadata[key] == manifest[key] commands = metadata["commands"] validate_module_commands(commands)