コード例 #1
0
ファイル: test.py プロジェクト: aweyl/RAMP
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)
コード例 #2
0
    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)
コード例 #3
0
ファイル: test.py プロジェクト: aweyl/RAMP
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)
コード例 #4
0
    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)
コード例 #5
0
ファイル: test.py プロジェクト: aweyl/RAMP
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"])