diff --git a/tests/testutils/_primer/cases/both_empty/main.json b/tests/testutils/_primer/cases/both_empty/main.json
index 0967ef424b..2473c15611 100644
--- a/tests/testutils/_primer/cases/both_empty/main.json
+++ b/tests/testutils/_primer/cases/both_empty/main.json
@@ -1 +1,6 @@
-{}
+{
+ "astroid": {
+ "commit": "123456789abcdef",
+ "messages": []
+ }
+}
diff --git a/tests/testutils/_primer/cases/both_empty/pr.json b/tests/testutils/_primer/cases/both_empty/pr.json
index 0967ef424b..2473c15611 100644
--- a/tests/testutils/_primer/cases/both_empty/pr.json
+++ b/tests/testutils/_primer/cases/both_empty/pr.json
@@ -1 +1,6 @@
-{}
+{
+ "astroid": {
+ "commit": "123456789abcdef",
+ "messages": []
+ }
+}
diff --git a/tests/testutils/_primer/cases/multi_package/expected.txt b/tests/testutils/_primer/cases/multi_package/expected.txt
new file mode 100644
index 0000000000..46f9611eb7
--- /dev/null
+++ b/tests/testutils/_primer/cases/multi_package/expected.txt
@@ -0,0 +1,45 @@
+🤖 **Effect of this PR on checked open source code:** 🤖
+
+
+**Effect on [astroid](https://github.com/pylint-dev/astroid):**
+
+The following messages are now emitted:
+
+
+
+1) too-complex:
+*'my_function' is too complex. The McCabe rating is 17*
+https://github.com/pylint-dev/astroid/blob/123456789abcdef/astroid/node_classes.py#L105
+
+
+The following messages are no longer emitted:
+
+
+
+1) too-complex:
+*'my_function' is too complex. The McCabe rating is 18*
+https://github.com/pylint-dev/astroid/blob/123456789abcdef/astroid/node_classes.py#L100
+
+
+
+**Effect on [astropy](https://github.com/astropy/astropy):**
+
+The following messages are now emitted:
+
+
+
+1) locally-disabled:
+*Locally disabling looping-through-iterator (W4801)*
+https://github.com/astropy/astropy/blob/1fb40bc1f22f176254ef583065aa155f53f3b414/astropy/coordinates/angles/angle_parsetab.py#L14
+
+
+The following messages are no longer emitted:
+
+
+
+1) useless-suppression:
+*Useless suppression of 'looping-through-iterator'*
+https://github.com/astropy/astropy/blob/1fb40bc1f22f176254ef583065aa155f53f3b414/astropy/coordinates/angles/angle_parsetab.py#L14
+
+
+*This comment was generated for commit v2.14.2*
diff --git a/tests/testutils/_primer/cases/multi_package/expected_comparator.json b/tests/testutils/_primer/cases/multi_package/expected_comparator.json
new file mode 100644
index 0000000000..456a50f703
--- /dev/null
+++ b/tests/testutils/_primer/cases/multi_package/expected_comparator.json
@@ -0,0 +1,4 @@
+[
+ { "package": "astroid", "missing": 1, "new": 1 },
+ { "package": "astropy", "missing": 1, "new": 1 }
+]
diff --git a/tests/testutils/_primer/cases/multi_package/main.json b/tests/testutils/_primer/cases/multi_package/main.json
new file mode 100644
index 0000000000..ef2f045621
--- /dev/null
+++ b/tests/testutils/_primer/cases/multi_package/main.json
@@ -0,0 +1,42 @@
+{
+ "astroid": {
+ "commit": "1234567890abcdef",
+ "messages": [
+ {
+ "type": "convention",
+ "module": "astroid.node_classes",
+ "obj": "my_function",
+ "line": 100,
+ "column": 0,
+ "endLine": 100,
+ "endColumn": 15,
+ "path": "tests/.pylint_primer_tests/pylint-dev/astroid/astroid/node_classes.py",
+ "symbol": "too-complex",
+ "message": "'my_function' is too complex. The McCabe rating is 18",
+ "messageId": "R1260",
+ "confidence": "UNDEFINED",
+ "absolutePath": "tests/.pylint_primer_tests/pylint-dev/astroid/astroid/node_classes.py"
+ }
+ ]
+ },
+ "astropy": {
+ "commit": "1fb40bc1f22f176254ef583065aa155f53f3b414",
+ "messages": [
+ {
+ "type": "warning",
+ "module": "astropy.coordinates.angles.angle_parsetab",
+ "obj": "",
+ "line": 14,
+ "column": 0,
+ "endLine": null,
+ "endColumn": null,
+ "path": "tests/.pylint_primer_tests/astropy/astropy/astropy/coordinates/angles/angle_parsetab.py",
+ "symbol": "useless-suppression",
+ "message": "Useless suppression of 'looping-through-iterator'",
+ "messageId": "I0021",
+ "confidence": "UNDEFINED",
+ "absolutePath": "tests/.pylint_primer_tests/astropy/astropy/astropy/coordinates/angles/angle_parsetab.py"
+ }
+ ]
+ }
+}
diff --git a/tests/testutils/_primer/cases/multi_package/pr.json b/tests/testutils/_primer/cases/multi_package/pr.json
new file mode 100644
index 0000000000..6111b92ccf
--- /dev/null
+++ b/tests/testutils/_primer/cases/multi_package/pr.json
@@ -0,0 +1,42 @@
+{
+ "astroid": {
+ "commit": "123456789abcdef",
+ "messages": [
+ {
+ "type": "convention",
+ "module": "astroid.node_classes",
+ "obj": "my_function",
+ "line": 105,
+ "column": 0,
+ "endLine": 105,
+ "endColumn": 15,
+ "path": "tests/.pylint_primer_tests/pylint-dev/astroid/astroid/node_classes.py",
+ "symbol": "too-complex",
+ "message": "'my_function' is too complex. The McCabe rating is 17",
+ "messageId": "R1260",
+ "confidence": "UNDEFINED",
+ "absolutePath": "tests/.pylint_primer_tests/pylint-dev/astroid/astroid/node_classes.py"
+ }
+ ]
+ },
+ "astropy": {
+ "commit": "1fb40bc1f22f176254ef583065aa155f53f3b414",
+ "messages": [
+ {
+ "type": "info",
+ "module": "astropy.coordinates.angles.angle_parsetab",
+ "obj": "",
+ "line": 14,
+ "column": 0,
+ "endLine": null,
+ "endColumn": null,
+ "path": "tests/.pylint_primer_tests/astropy/astropy/astropy/coordinates/angles/angle_parsetab.py",
+ "symbol": "locally-disabled",
+ "message": "Locally disabling looping-through-iterator (W4801)",
+ "messageId": "I0011",
+ "confidence": "UNDEFINED",
+ "absolutePath": "tests/.pylint_primer_tests/astropy/astropy/astropy/coordinates/angles/angle_parsetab.py"
+ }
+ ]
+ }
+}