Esempio n. 1
0
    def node_library(self, **kwargs) -> Path:
        # TODO: once we've migrated all Node.js repos to either having
        #  .repo-metadata.json, or excluding README.md, we can remove this.
        if not os.path.exists("./.repo-metadata.json"):
            self.excludes.append("README.md")
            if "samples/README.md" not in self.excludes:
                self.excludes.append("samples/README.md")

        kwargs["metadata"] = node.template_metadata()
        kwargs["publish_token"] = node.get_publish_token(kwargs["metadata"]["name"])

        ignore_src_index = [
            "yes" for f in self.excludes if fnmatch.fnmatch("src/index.ts", f)
        ]
        # generate root-level `src/index.ts` to export multiple versions and its default clients
        if (
            "versions" in kwargs
            and "default_version" in kwargs
            and not ignore_src_index
        ):
            node.generate_index_ts(
                versions=kwargs["versions"], default_version=kwargs["default_version"]
            )

        return self._generic_library("node_library", **kwargs)
Esempio n. 2
0
def test_generate_index_ts_invalid_default_version():
    # use a non-nodejs template directory
    with util.chdir(FIXTURES / "node_templates" / "index_samples"):
        versions = ["v1beta1"]
        default_version = "v1"

        with pytest.raises(AttributeError) as err:
            node.generate_index_ts(versions, default_version)
            assert f"must contain default version {default_version}" in err.args
Esempio n. 3
0
def test_generate_index_ts():
    # use a non-nodejs template directory
    with util.chdir(FIXTURES / "node_templates" / "index_samples"):
        node.generate_index_ts(["v1", "v1beta1"], "v1")
        generated_index_path = pathlib.Path(
            FIXTURES / "node_templates" / "index_samples" / "src" / "index.ts")
        sample_index_path = pathlib.Path(FIXTURES / "node_templates" /
                                         "index_samples" / "sample_index.ts")
        assert filecmp.cmp(generated_index_path, sample_index_path)
Esempio n. 4
0
def test_generate_index_ts_no_clients():
    # use a non-nodejs template directory
    with util.chdir(FIXTURES / "node_templates" / "index_samples"):
        versions = ["v1", "v1beta1", "invalid_index"]
        default_version = "invalid_index"

        with pytest.raises(AttributeError) as err:
            node.generate_index_ts(versions, default_version)
            assert (
                f"No client is exported in the default version's({default_version}) index.ts ."
                in err.args)
Esempio n. 5
0
def test_generate_index_ts_empty_versions():
    cwd = os.getcwd()
    try:
        # use a non-nodejs template directory
        os.chdir(FIXTURES / "node_templates" / "index_samples")

        with pytest.raises(AttributeError) as err:
            node.generate_index_ts([], "v1")
            assert "can't be empty" in err.args
    finally:
        os.chdir(cwd)
Esempio n. 6
0
def test_generate_index_ts():
    cwd = os.getcwd()
    try:
        # use a non-nodejs template directory
        os.chdir(FIXTURES / "node_templates" / "index_samples")
        node.generate_index_ts(["v1", "v1beta1"], "v1")
        generated_index_path = pathlib.Path(
            FIXTURES / "node_templates" / "index_samples" / "src" / "index.ts")
        sample_index_path = pathlib.Path(FIXTURES / "node_templates" /
                                         "index_samples" / "sample_index.ts")
        assert filecmp.cmp(generated_index_path, sample_index_path)
    finally:
        os.chdir(cwd)
Esempio n. 7
0
def test_generate_index_ts_empty_versions():
    # use a non-nodejs template directory
    with util.chdir(FIXTURES / "node_templates" / "index_samples"):
        with pytest.raises(AttributeError) as err:
            node.generate_index_ts([], "v1")
            assert "can't be empty" in err.args