def test_bundle_from_menifest(): """ Test metadata generated from menifest file is as expected. """ runner = CliRunner() result = runner.invoke(packer.package, [MODULE_FILE_PATH, '-m', MENIFEST_FILE_PATH]) assert result.exit_code == 0 metadata, _ = module_unpacker.unpack('./module.zip') assert metadata["module_name"] == "graph" assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == "x86_64" assert metadata["version"] == MODULE_VERSION assert metadata["sha256"] == sha256_checksum(MODULE_FILE_PATH) 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_bad_bundle(self): """ test malformed bundle is detected """ path_to_bundle = os.path.join(os.getcwd(), BUNDLE_ZIP_FILE) module = discover_modules_commands(MODULE_FILE_PATH) metadata = module_metadata.create_default_metadata(module, MODULE_FILE_PATH) fields = ["Module_name", "Architecture", "Version", "SHA256"] for field in fields: tmp = metadata[field] metadata[field] = "" module_packer.archive(MODULE_FILE_PATH, metadata) self.assertIsNone(module_unpacker.unpack(path_to_bundle)) metadata[field] = tmp os.remove(path_to_bundle)
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.2" argv = [ MODULE_FILE_PATH, '-a', author, '-e', email, '-d', description, '-h', homepage, '-l', _license, '-c', command_line_args, '-r', min_redis_version, '-rl', min_redis_pack_version, '-ca', ','.join([cap['name'] for cap in MODULE_CAPABILITIES]) ] runner = CliRunner() result = runner.invoke(packer.package, argv) assert result.exit_code == 0 metadata, _ = module_unpacker.unpack('./module.zip') assert metadata["module_name"] == "graph" assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == "x86_64" assert metadata["version"] == MODULE_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_valid_bundle(self): """ test bundle extraction """ module_path = os.path.join(os.getcwd(), MODULE_FILE) path_to_bundle = os.path.join(os.getcwd(), BUNDLE_ZIP_FILE) path_to_metadata = os.path.join(os.getcwd(), "module.json") module = discover_modules_commands(module_path) metadata = module_metadata.create_default_metadata(module, module_path) module_packer.archive(module_path, metadata) metadata, path_to_module = module_unpacker.unpack(path_to_bundle) self.assertIsNotNone(metadata) self.assertTrue(os.path.isfile(path_to_module)) self.assertTrue(os.path.isfile(path_to_metadata)) os.remove(path_to_bundle) os.remove(path_to_metadata) os.remove(module_path)
def test_defaults(): """Test auto generated metadata from module is as expected.""" runner = CliRunner() result = runner.invoke(packer.package, [MODULE_FILE_PATH]) assert result.exit_code == 0 metadata, _ = module_unpacker.unpack('./module.zip') assert metadata["module_name"] == "graph" assert metadata["module_file"] == MODULE_FILE assert metadata["architecture"] == 'x86_64' assert metadata["version"] == MODULE_VERSION assert metadata["author"] == "" assert metadata["email"] == "" assert metadata["description"] == "" assert metadata["homepage"] == "" assert metadata["license"] == "" assert metadata["command_line_args"] == "" assert metadata["min_redis_version"] == "4.0" assert metadata["min_redis_pack_version"] == "5.2" assert metadata["capabilities"] == [] assert metadata["sha256"] == sha256_checksum(MODULE_FILE_PATH) validate_module_commands(metadata["commands"])