Introduce a stardoc test for Python.
RELNOTES: None
PiperOrigin-RevId: 250960882
diff --git a/src/test/java/com/google/devtools/build/skydoc/BUILD b/src/test/java/com/google/devtools/build/skydoc/BUILD
index cff1161..952a3c7 100644
--- a/src/test/java/com/google/devtools/build/skydoc/BUILD
+++ b/src/test/java/com/google/devtools/build/skydoc/BUILD
@@ -187,6 +187,14 @@
skydoc = "//src/main/java/com/google/devtools/build/skydoc",
)
+skydoc_test(
+ name = "py_rule_test",
+ golden_file = "testdata/py_rule_test/golden.txt",
+ input_file = "testdata/py_rule_test/input.bzl",
+ skydoc = "//src/main/java/com/google/devtools/build/skydoc",
+ whitelisted_symbols = ["py_related_rule"],
+)
+
genrule(
name = "generate_bzl_test_dep",
srcs = ["testdata/generated_bzl_test/dep.bzl.tpl"],
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/py_rule_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/py_rule_test/golden.txt
new file mode 100644
index 0000000..76ffdb8
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/py_rule_test/golden.txt
@@ -0,0 +1,81 @@
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+<a name="#py_related_rule"></a>
+
+## py_related_rule
+
+<pre>
+py_related_rule(<a href="#py_related_rule-name">name</a>, <a href="#py_related_rule-fifth">fifth</a>, <a href="#py_related_rule-first">first</a>, <a href="#py_related_rule-fourth">fourth</a>, <a href="#py_related_rule-second">second</a>, <a href="#py_related_rule-sixth">sixth</a>, <a href="#py_related_rule-third">third</a>)
+</pre>
+
+This rule does python-related things.
+
+### Attributes
+
+<table class="params-table">
+ <colgroup>
+ <col class="col-param" />
+ <col class="col-description" />
+ </colgroup>
+ <tbody>
+ <tr id="py_related_rule-name">
+ <td><code>name</code></td>
+ <td>
+ <a href="https://bazel.build/docs/build-ref.html#name">Name</a>; required
+ <p>
+ A unique name for this target.
+ </p>
+ </td>
+ </tr>
+ <tr id="py_related_rule-fifth">
+ <td><code>fifth</code></td>
+ <td>
+ Boolean; optional
+ <p>
+ Hey look, its the fifth thing!
+ </p>
+ </td>
+ </tr>
+ <tr id="py_related_rule-first">
+ <td><code>first</code></td>
+ <td>
+ <a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; required
+ <p>
+ this is the first doc string!
+ </p>
+ </td>
+ </tr>
+ <tr id="py_related_rule-fourth">
+ <td><code>fourth</code></td>
+ <td>
+ Boolean; optional
+ <p>
+ the fourth doc string.
+ </p>
+ </td>
+ </tr>
+ <tr id="py_related_rule-second">
+ <td><code>second</code></td>
+ <td>
+ <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a>; required
+ </td>
+ </tr>
+ <tr id="py_related_rule-sixth">
+ <td><code>sixth</code></td>
+ <td>
+ List of integers; optional
+ <p>
+ it's the sixth thing.
+ </p>
+ </td>
+ </tr>
+ <tr id="py_related_rule-third">
+ <td><code>third</code></td>
+ <td>
+ <a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; required
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/py_rule_test/input.bzl b/src/test/java/com/google/devtools/build/skydoc/testdata/py_rule_test/input.bzl
new file mode 100644
index 0000000..0d6bc16
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/py_rule_test/input.bzl
@@ -0,0 +1,32 @@
+"""The input file for the python rule test"""
+
+def exercise_the_api():
+ var1 = PyRuntimeInfo
+ var2 = PyInfo
+
+exercise_the_api()
+
+def my_rule_impl(ctx):
+ return []
+
+py_related_rule = rule(
+ implementation = my_rule_impl,
+ doc = "This rule does python-related things.",
+ attrs = {
+ "first": attr.label(
+ mandatory = True,
+ doc = "this is the first doc string!",
+ allow_single_file = True,
+ ),
+ "second": attr.string_dict(mandatory = True),
+ "third": attr.output(mandatory = True),
+ "fourth": attr.bool(default = False, doc = "the fourth doc string.", mandatory = False),
+ "fifth": attr.bool(default = True, doc = "Hey look, its the fifth thing!"),
+ "sixth": attr.int_list(
+ default = range(10),
+ doc = "it's the sixth thing.",
+ mandatory = False,
+ ),
+ "_hidden": attr.string(),
+ },
+)