public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/libmodulemd] rawhide: 2.15.3 bump
Date: Fri, 12 Jun 2026 13:07:03 GMT	[thread overview]
Message-ID: <178126962301.1.8850378858381981030.rpms-libmodulemd-b34829e6232d@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/libmodulemd
Branch : rawhide
Commit : b34829e6232d935cecd60f76bf442665fcd583bb
Author : Petr Písař <ppisar@redhat.com>
Date   : 2026-06-12T15:03:14+02:00
Stats  : +9/-2286 in 5 file(s)
URL    : https://src.fedoraproject.org/rpms/libmodulemd/c/b34829e6232d935cecd60f76bf442665fcd583bb?branch=rawhide

Log:
2.15.3 bump

---
diff --git a/.gitignore b/.gitignore
index 78e14ea..3f678dc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -68,3 +68,5 @@
 /modulemd-2.15.1.tar.xz.asc
 /modulemd-2.15.2.tar.xz
 /modulemd-2.15.2.tar.xz.asc
+/modulemd-2.15.3.tar.xz
+/modulemd-2.15.3.tar.xz.asc

diff --git a/libmodulemd.spec b/libmodulemd.spec
index 8a07089..bd824de 100644
--- a/libmodulemd.spec
+++ b/libmodulemd.spec
@@ -23,8 +23,8 @@
 %endif
 
 Name:           %{upstream_name}%{?v2_suffix}
-Version:        2.15.2
-Release:        8%{?dist}
+Version:        2.15.3
+Release:        1%{?dist}
 Summary:        Module metadata manipulation library
 
 # COPYING:      MIT
@@ -41,10 +41,6 @@ Source0:        %{url}/releases/download/%{version}/modulemd-%{version}.tar.xz
 Source1:        %{url}/releases/download/%{version}/modulemd-%{version}.tar.xz.asc
 # Key exported from Petr Pisar's keyring
 Source2:        gpgkey-E3F42FCE156830A80358E6E94FD1AEC3365AF7BF.gpg
-# Adapt tests to glib2-2.87.0, in upstream after 2.15.2, bug #2423153
-Patch0:         modulemd-2.15.2-tests-Adapt-to-glib-2.87.0.patch
-# Adapt tests to pygobject 3.55.0, in upstream after 2.15.2, bug #2440570
-Patch1:         modulemd-2.15.2-tests-Adapt-to-pygobject-3.55.0.patch
 
 BuildRequires:  gnupg2
 BuildRequires:  meson >= 0.47
@@ -82,7 +78,6 @@ more details.
 Summary:        Python 2 bindings for %{name}
 Requires:       %{name}%{?_isa} = %{version}-%{release}
 Requires:       python-gobject-base
-Requires:       python-six
 
 %description -n python2-%{name}
 Python 2 bindings for %{name}.
@@ -94,12 +89,6 @@ Python 2 bindings for %{name}.
 Summary:        Python 3 bindings for %{name}
 Requires:       %{name}%{?_isa} = %{version}-%{release}
 Requires:       python%{python3_pkgversion}-gobject-base
-%if (0%{?rhel} && 0%{?rhel} <= 7)
-# The py3_dist macro on EPEL 7 doesn't work right at the moment
-Requires:       python3.6dist(six)
-%else
-Requires:       %{py3_dist six}
-%endif
 
 %description -n python%{python3_pkgversion}-%{name}
 Python %{python3_pkgversion} bindings for %{name}.
@@ -193,6 +182,9 @@ mv %{buildroot}%{_mandir}/man1/modulemd-validator.1 \
 
 
 %changelog
+* Fri Jun 12 2026 Petr Pisar <ppisar@redhat.com> - 2.15.3-1
+- 2.15.3 bump
+
 * Wed Jun 03 2026 Python Maint <python-maint@redhat.com> - 2.15.2-8
 - Rebuilt for Python 3.15
 

diff --git a/modulemd-2.15.2-tests-Adapt-to-glib-2.87.0.patch b/modulemd-2.15.2-tests-Adapt-to-glib-2.87.0.patch
deleted file mode 100644
index 8e86b58..0000000
--- a/modulemd-2.15.2-tests-Adapt-to-glib-2.87.0.patch
+++ /dev/null
@@ -1,2104 +0,0 @@
-From 89d4afb3d018250427d4d87840ae57aab3903361 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
-Date: Mon, 8 Dec 2025 13:39:29 +0100
-Subject: [PATCH] tests: Adapt to glib 2.87.0
-
-After upgrading glib from 2.86.1 to 2.87.0, tests which expect catching
-SIGTRAP started to fail like this:
-
-    [...]/redhat-linux-build/modulemd/component_module
-    TAP version 14
-    # random seed: R02S501b6bd02413a2980133f197dab99416
-    1..6
-    # Start of modulemd tests
-    # Start of v2 tests
-    # Start of component tests
-    # Start of module tests
-    not ok /modulemd/v2/component/module/construct - libmodulemd-FATAL-CRITICAL: modulemd_component_set_key: assertion 'name' failed
-    Bail out!
-    Aborted                    (core dumped) LD_LIBRARY_PATH=/home/test/libmodulemd-devel/redhat-linux-build/modulemd MESON_BUILD_ROOT=/home/test/libmodulemd-devel/redhat-linux-build TEST_DATA_PATH=/home/test/libmodulemd-devel/modulemd/tests/test_data UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 LC_ALL=C MESON_TEST_ITERATION=1 MESON_SOURCE_ROOT=/home/test/libmodulemd-devel MALLOC_PERTURB_=115 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 /home/test/libmodulemd-devel/redhat-linux-build/modulemd/component_module
-
-The tests passed a NULL pointer to libmodulemd object constructors and
-checked that glib raised a SIGTRAP signal. The new glib fixed
-<https://gitlab.gnome.org/GNOME/glib/-/issues/3790> and as a side
-effect changed how the process is terminated: If the process runs
-under a debugger, a breakpoint trap is invoked or SIGTRAP raised,
-depending on the architecture. If the process does not run under
-a debugger, abort() is called, which raises SIGABRT and then after
-returning to glib SIGABRT disposition is reset and SIGABRT raised
-again to finally terminate the process. That means that catching
-signals is pointless because the process will be terminated
-nevertheless.
-
-This patch adapts the tests by using a glib-sanctioned way of checking
-whether a process terminated abnormally instead of depending on
-a way a particular glib version implements.
-
-This patch moves the trapping subtests into standalone tests because
-g_test_trap_subprocess() cannot handle multiple subtests in a single
-test function. It also removes pointless checks for a return value of
-a function which has just exited the process.
-
-The same goes for Python tests (with
-G_DEBUG=fatal-warnings,fatal-criticals) which originally went as far
-as checking whether and which signal was raised. This patch makes the
-Python tests passing regardless of G_DEBUG setting.
-
-Implementation note: Python does not support annoymous block and
-context managers are not compatible with fork, hence this patch moves
-the blocks into named callables to be exectuted in a subprocess.
-
-Implementation note: Glib provides G_TEST_SUBPROCESS_DEFAULT constant
-since 2.74. This patch adds a fallback definition instead of
-hard-coding 0 literal.
-
-Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2423153
----
- meson.build                                   |   8 +
- modulemd/include/private/glib-extensions.h    |   4 +
- modulemd/include/private/test-utils.h         |   1 +
- modulemd/meson.build                          |   1 +
- modulemd/tests/ModulemdTests/base.py          |  25 +++
- modulemd/tests/ModulemdTests/defaults.py      |  31 ++-
- modulemd/tests/ModulemdTests/dependencies.py  |  26 ++-
- modulemd/tests/ModulemdTests/profile.py       |  21 +-
- modulemd/tests/ModulemdTests/servicelevel.py  |  21 +-
- .../tests/ModulemdTests/translationentry.py   |  21 +-
- modulemd/tests/test-modulemd-common.c         |  68 +++---
- .../tests/test-modulemd-component-module.c    |  82 ++++---
- modulemd/tests/test-modulemd-defaults-v1.c    |  87 ++++---
- modulemd/tests/test-modulemd-defaults.c       |  79 ++++---
- modulemd/tests/test-modulemd-dependencies.c   | 212 ++++++++++++++----
- modulemd/tests/test-modulemd-module.c         |  72 ++++--
- modulemd/tests/test-modulemd-obsoletes.c      |  79 ++++---
- modulemd/tests/test-modulemd-profile.c        | 105 ++++++---
- modulemd/tests/test-modulemd-service-level.c  | 117 ++++++----
- .../tests/test-modulemd-translation-entry.c   | 113 ++++++----
- modulemd/tests/test-modulemd-translation.c    | 108 +++++----
- 21 files changed, 873 insertions(+), 408 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index f28e410..df6e5ae 100644
---- a/meson.build
-+++ b/meson.build
-@@ -128,6 +128,14 @@ has_g_spawn_check_wait_status = cc.has_function(
-     'g_spawn_check_wait_status',
-     dependencies : [ glib ])
- 
-+# Check whether glib2 has G_TEST_SUBPROCESS_DEFAULT enum member.
-+has_g_test_subprocess_default = cc.compiles(
-+    '''#include <glib.h>
-+    int foo = G_TEST_SUBPROCESS_DEFAULT;
-+    ''',
-+    dependencies : [ glib ],
-+    name : 'G_TEST_SUBPROCESS_DEFAULT')
-+
- with_py3 = get_option('with_py3')
- if with_py3
-     if get_option('skip_introspection')
-diff --git a/modulemd/include/private/glib-extensions.h b/modulemd/include/private/glib-extensions.h
-index 29e9c84..00081be 100644
---- a/modulemd/include/private/glib-extensions.h
-+++ b/modulemd/include/private/glib-extensions.h
-@@ -23,6 +23,10 @@
- G_DEFINE_AUTOPTR_CLEANUP_FUNC (GDate, g_date_free)
- #endif
- 
-+/* G_TEST_SUBPROCESS_DEFAULT was added in Glib 2.74. */
-+#ifndef HAVE_G_TEST_SUBPROCESS_DEFAULT
-+#define G_TEST_SUBPROCESS_DEFAULT 0
-+#endif
- 
- #ifndef HAVE_EXTEND_AND_STEAL
- 
-diff --git a/modulemd/include/private/test-utils.h b/modulemd/include/private/test-utils.h
-index 2643ca1..320cf99 100644
---- a/modulemd/include/private/test-utils.h
-+++ b/modulemd/include/private/test-utils.h
-@@ -16,6 +16,7 @@
- #include <glib.h>
- #include <locale.h>
- #include <yaml.h>
-+#include "glib-extensions.h"
- 
- G_BEGIN_DECLS
- 
-diff --git a/modulemd/meson.build b/modulemd/meson.build
-index 1c75002..e41bcc5 100644
---- a/modulemd/meson.build
-+++ b/modulemd/meson.build
-@@ -145,6 +145,7 @@ cdata.set('HAVE_RPMIO', rpm.found())
- cdata.set('HAVE_GDATE_AUTOPTR', has_gdate_autoptr)
- cdata.set('HAVE_EXTEND_AND_STEAL', has_extend_and_steal)
- cdata.set('HAVE_G_SPAWN_CHECK_WAIT_STATUS', has_g_spawn_check_wait_status)
-+cdata.set('HAVE_G_TEST_SUBPROCESS_DEFAULT', has_g_test_subprocess_default)
- cdata.set('HAVE_OVERFLOWED_BUILDORDER', accept_overflowed_buildorder)
- configure_file(
-   output : 'config.h',
-diff --git a/modulemd/tests/ModulemdTests/base.py b/modulemd/tests/ModulemdTests/base.py
-index 1b46470..55ac742 100644
---- a/modulemd/tests/ModulemdTests/base.py
-+++ b/modulemd/tests/ModulemdTests/base.py
-@@ -52,6 +52,21 @@ class TestBase(unittest.TestCase):
-         elif self._caught_signal and not expect_signal:
-             raise AssertionError("Signal caught in non-warning state")
- 
-+    def assertProcessFailure(self, callable, *args):
-+        """Calls the callable in a subprocess and checks whether the process was
-+        killed with a signal depending on Glib warning fatality."""
-+        pid = os.fork()
-+        if pid == 0:
-+            callable(*args)
-+            os._exit(0)
-+        _, status = os.waitpid(pid, 0)
-+        if self.warnings_fatal:
-+            if not os.WIFSIGNALED(status):
-+                raise AssertionError("Child process was not aborted")
-+        else:
-+            if os.WIFSIGNALED(status):
-+                raise AssertionError("Child process was unexpectedly aborted")
-+
-     @property
-     def warnings_fatal(self):
-         gdebug = os.getenv("G_DEBUG", "").split(",")
-@@ -67,3 +82,13 @@ class TestBase(unittest.TestCase):
-             return super(TestBase, self).assertRaisesRegex(*args, **kwargs)
-         except AttributeError:
-             return self.assertRaisesRegexp(*args, **kwargs)
-+
-+    def assertRaisesRegexOrDies(self, callable, *args, **kwargs):
-+        """Checks that the callable terminates a process if Glib warnings are
-+        fatal. Otherwise, that the callable raised a given exception type with
-+        the given value matching a regular expression."""
-+        if self.warnings_fatal:
-+            self.assertProcessFailure(callable)
-+        else:
-+            with self.assertRaisesRegex(*args, **kwargs):
-+                callable()
-diff --git a/modulemd/tests/ModulemdTests/defaults.py b/modulemd/tests/ModulemdTests/defaults.py
-index c162bf3..3a1b9fe 100644
---- a/modulemd/tests/ModulemdTests/defaults.py
-+++ b/modulemd/tests/ModulemdTests/defaults.py
-@@ -29,6 +29,20 @@ except ImportError:
- from base import TestBase
- 
- 
-+def _zero_mdversion():
-+    defs = Modulemd.Defaults.new(0, "foo")
-+
-+
-+def _unknown_mdversion():
-+    defs = Modulemd.Defaults.new(
-+        Modulemd.DefaultsVersionEnum.LATEST + 1, "foo"
-+    )
-+
-+
-+def _set_module_name_to_none(defs):
-+    defs.props.module_name = None
-+
-+
- class TestDefaults(TestBase):
-     def test_constructors(self):
-         # Test that the new() function works
-@@ -48,16 +62,14 @@ class TestDefaults(TestBase):
-             Modulemd.Defaults()
- 
-         # Test with a zero mdversion
--        with self.assertRaisesRegex(TypeError, "constructor returned NULL"):
--            with self.expect_signal():
--                defs = Modulemd.Defaults.new(0, "foo")
-+        self.assertRaisesRegexOrDies(
-+            _zero_mdversion, TypeError, "constructor returned NULL"
-+        )
- 
-         # Test with an unknown mdversion
--        with self.assertRaisesRegex(TypeError, "constructor returned NULL"):
--            with self.expect_signal():
--                defs = Modulemd.Defaults.new(
--                    Modulemd.DefaultsVersionEnum.LATEST + 1, "foo"
--                )
-+        self.assertRaisesRegexOrDies(
-+            _unknown_mdversion, TypeError, "constructor returned NULL"
-+        )
- 
-         # Test with no name
-         with self.assertRaisesRegex(
-@@ -99,8 +111,7 @@ class TestDefaults(TestBase):
-         assert defs.get_module_name() == "foo"
- 
-         # Ensure we cannot set the module_name
--        with self.expect_signal():
--            defs.props.module_name = None
-+        self.assertProcessFailure(_set_module_name_to_none, defs)
- 
-     def test_modified(self):
-         defs = Modulemd.Defaults.new(
-diff --git a/modulemd/tests/ModulemdTests/dependencies.py b/modulemd/tests/ModulemdTests/dependencies.py
-index a190134..c776e23 100644
---- a/modulemd/tests/ModulemdTests/dependencies.py
-+++ b/modulemd/tests/ModulemdTests/dependencies.py
-@@ -28,38 +28,40 @@ except ImportError:
- from base import TestBase
- 
- 
-+def _get_buildtime_streams(modulemd_dependecies, stream_name):
-+    modulemd_dependecies.get_buildtime_streams(stream_name)
-+
-+
-+def _get_runtime_streams(modulemd_dependecies, stream_name):
-+    modulemd_dependecies.get_runtime_streams(stream_name)
-+
-+
- class TestDependencies(TestBase):
-     def test_constructor(self):
-         # Test that the new() function works
-         d = Modulemd.Dependencies.new()
-         assert d
-         assert d.get_buildtime_modules() == []
--        with self.expect_signal(only_on_fatal_warnings=True):
--            d.get_buildtime_streams("foobar123")
-+        self.assertProcessFailure(_get_buildtime_streams, d, "foobar123")
-         assert d.get_runtime_modules() == []
--        with self.expect_signal(only_on_fatal_warnings=True):
--            d.get_runtime_streams("foobar123")
-+        self.assertProcessFailure(_get_runtime_streams, d, "foobar123")
- 
-         # Test that keyword name is accepted
-         d = Modulemd.Dependencies()
-         assert d
-         assert d.get_buildtime_modules() == []
--        with self.expect_signal(only_on_fatal_warnings=True):
--            d.get_buildtime_streams("foobar123")
-+        self.assertProcessFailure(_get_buildtime_streams, d, "foobar123")
-         assert d.get_runtime_modules() == []
--        with self.expect_signal(only_on_fatal_warnings=True):
--            d.get_runtime_streams("foobar123")
-+        self.assertProcessFailure(_get_runtime_streams, d, "foobar123")
- 
-     def test_copy(self):
-         d_orig = Modulemd.Dependencies()
-         d = d_orig.copy()
-         assert d
-         assert d.get_buildtime_modules() == []
--        with self.expect_signal(only_on_fatal_warnings=True):
--            d.get_buildtime_streams("foobar123")
-+        self.assertProcessFailure(_get_buildtime_streams, d, "foobar123")
-         assert d.get_runtime_modules() == []
--        with self.expect_signal(only_on_fatal_warnings=True):
--            d.get_runtime_streams("foobar123")
-+        self.assertProcessFailure(_get_runtime_streams, d, "foobar123")
- 
-         d_orig.add_buildtime_stream("buildmod1", "stream2")
-         d_orig.add_buildtime_stream("buildmod1", "stream1")
-diff --git a/modulemd/tests/ModulemdTests/profile.py b/modulemd/tests/ModulemdTests/profile.py
-index 1de57c6..765c57d 100644
---- a/modulemd/tests/ModulemdTests/profile.py
-+++ b/modulemd/tests/ModulemdTests/profile.py
-@@ -28,6 +28,18 @@ except ImportError:
- from base import TestBase
- 
- 
-+def construct_without_arguments():
-+    Modulemd.Profile()
-+
-+
-+def construct_with_none_name():
-+    Modulemd.Profile(name=None)
-+
-+
-+def _set_props_name(modulemd_profile, value):
-+    modulemd_profile.props.name = value
-+
-+
- class TestProfile(TestBase):
-     def test_constructor(self):
-         # Test that the new() function works
-@@ -51,11 +63,9 @@ class TestProfile(TestBase):
-             Modulemd.Profile.new(None)
-         assert "does not allow None as a value" in cm.exception.__str__()
- 
--        with self.expect_signal():
--            Modulemd.Profile()
-+        self.assertProcessFailure(construct_without_arguments)
- 
--        with self.expect_signal():
--            Modulemd.Profile(name=None)
-+        self.assertProcessFailure(construct_with_none_name)
- 
-     def test_copy(self):
-         p_orig = Modulemd.Profile(name="testprofile")
-@@ -84,8 +94,7 @@ class TestProfile(TestBase):
-         assert p.get_name() == "testprofile"
-         assert p.props.name == "testprofile"
- 
--        with self.expect_signal():
--            p.props.name = "notadrill"
-+        self.assertProcessFailure(_set_props_name, p, "notadrill")
- 
-     def test_get_set_description(self):
-         p = Modulemd.Profile(name="testprofile")
-diff --git a/modulemd/tests/ModulemdTests/servicelevel.py b/modulemd/tests/ModulemdTests/servicelevel.py
-index f244b01..fc9c648 100644
---- a/modulemd/tests/ModulemdTests/servicelevel.py
-+++ b/modulemd/tests/ModulemdTests/servicelevel.py
-@@ -30,6 +30,18 @@ from base import TestBase
- import datetime
- 
- 
-+def _construct_without_arguments():
-+    Modulemd.ServiceLevel()
-+
-+
-+def _construct_with_none_name():
-+    Modulemd.ServiceLevel(name=None)
-+
-+
-+def _set_props_name(modulemd_servicelevel, value):
-+    modulemd_servicelevel.props.name = value
-+
-+
- class TestServiceLevel(TestBase):
-     def test_constructors(self):
-         # Test that the new() function works
-@@ -56,12 +68,10 @@ class TestServiceLevel(TestBase):
-             assert "does not allow None as a value" in e.__str__()
- 
-         # Test that we fail if object is instantiated without a name
--        with self.expect_signal():
--            sl = Modulemd.ServiceLevel()
-+        self.assertProcessFailure(_construct_without_arguments)
- 
-         # Test that we fail if object is instantiated with a None name
--        with self.expect_signal():
--            sl = Modulemd.ServiceLevel(name=None)
-+        self.assertProcessFailure(_construct_with_none_name)
- 
-     def test_copy(self):
-         sl = Modulemd.ServiceLevel.new("foo")
-@@ -93,8 +103,7 @@ class TestServiceLevel(TestBase):
-         assert sl.props.name == "foo"
- 
-         # This property is not writable, make sure it fails to attempt it
--        with self.expect_signal():
--            sl.props.name = "bar"
-+        self.assertProcessFailure(_set_props_name, sl, "bar")
- 
-     def test_get_set_eol(self):
-         sl = Modulemd.ServiceLevel.new("foo")
-diff --git a/modulemd/tests/ModulemdTests/translationentry.py b/modulemd/tests/ModulemdTests/translationentry.py
-index c53e64b..9fce443 100644
---- a/modulemd/tests/ModulemdTests/translationentry.py
-+++ b/modulemd/tests/ModulemdTests/translationentry.py
-@@ -29,6 +29,18 @@ except ImportError:
- from base import TestBase
- 
- 
-+def _instantiate_without_locale():
-+    Modulemd.TranslationEntry()
-+
-+
-+def _instantiate_with_none_local():
-+    Modulemd.TranslationEntry(locale=None)
-+
-+
-+def _set_locale(te):
-+    te.props.locale = "en_GB"
-+
-+
- class TestTranslationEntry(TestBase):
-     def test_constructors(self):
-         # Test that the new() function works
-@@ -118,12 +130,10 @@ class TestTranslationEntry(TestBase):
-             assert "does not allow None as a value" in e.__str__()
- 
-         # Test that we fail if object is instantiated without a locale
--        with self.expect_signal():
--            Modulemd.TranslationEntry()
-+        self.assertProcessFailure(_instantiate_without_locale)
- 
-         # Test that we fail if object is instantiated with a None locale
--        with self.expect_signal():
--            Modulemd.TranslationEntry(locale=None)
-+        self.assertProcessFailure(_instantiate_with_none_local)
- 
-     def test_copy(self):
-         te_orig = Modulemd.TranslationEntry(locale="en_US")
-@@ -162,8 +172,7 @@ class TestTranslationEntry(TestBase):
-         assert te.get_locale() == "en_US"
-         assert te.props.locale == "en_US"
- 
--        with self.expect_signal():
--            te.props.locale = "en_GB"
-+        self.assertProcessFailure(_set_locale, te)
- 
-     def test_get_set_summary(self):
-         te = Modulemd.TranslationEntry(locale="en_US")
-diff --git a/modulemd/tests/test-modulemd-common.c b/modulemd/tests/test-modulemd-common.c
-index 97e477f..6895e34 100644
---- a/modulemd/tests/test-modulemd-common.c
-+++ b/modulemd/tests/test-modulemd-common.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd.h"
- 
-@@ -83,7 +82,7 @@ test_modulemd_load_file (void)
- 
- 
- static void
--test_modulemd_load_string (void)
-+test_modulemd_load_string_regular (void)
- {
-   const gchar *yaml_string = NULL;
-   g_autoptr (GError) error = NULL;
-@@ -122,16 +121,6 @@ test_modulemd_load_string (void)
-   g_assert_nonnull (output);
- 
- 
--  /* NULL string should raise an exception */
--  g_clear_error (&error);
--  g_clear_object (&idx);
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  idx = modulemd_load_string (NULL, &error);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_assert_null (idx);
--
--
-   /* An empty string is valid YAML, so it returns a non-NULL but empty index. */
-   g_clear_error (&error);
-   g_clear_object (&idx);
-@@ -151,6 +140,22 @@ test_modulemd_load_string (void)
- }
- 
- 
-+/* NULL string should raise an exception */
-+static void
-+test_modulemd_load_string_null (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (GError) error = NULL;
-+      g_autoptr (ModulemdModuleIndex) idx = NULL;
-+      idx = modulemd_load_string (NULL, &error);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
- static void
- test_packager_read_file (void)
- {
-@@ -353,7 +358,7 @@ test_packager_read_file (void)
- 
- 
- static void
--test_packager_read_string (void)
-+test_packager_read_string_regular (void)
- {
-   const gchar *yaml_string = NULL;
-   g_autoptr (GError) error = NULL;
-@@ -531,16 +536,6 @@ test_packager_read_string (void)
-     ==,
-     "streamname-override");
- 
--  /* NULL string should raise an exception */
--  g_clear_error (&error);
--  g_clear_object (&object);
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  otype = modulemd_read_packager_string (NULL, &object, &error);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_assert_cmpint (otype, ==, G_TYPE_INVALID);
--  g_assert_null (object);
--
-   /* An empty string is not a valid packager format */
-   g_clear_error (&error);
-   g_clear_object (&object);
-@@ -559,6 +554,21 @@ test_packager_read_string (void)
- }
- 
- 
-+/* NULL string should raise an exception */
-+static void
-+test_packager_read_string_null (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (GError) error = NULL;
-+      g_autoptr (GObject) object = NULL;
-+      (void)modulemd_read_packager_string (NULL, &object, &error);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
- /*
-  * Empty profiles are legal. Parser misinterpreted them as a list of one
-  * package with an empty package name.
-@@ -617,13 +627,17 @@ main (int argc, char *argv[])
-                    test_modulemd_get_version);
- 
-   g_test_add_func ("/modulemd/v2/common/load_file", test_modulemd_load_file);
--  g_test_add_func ("/modulemd/v2/common/load_string",
--                   test_modulemd_load_string);
-+  g_test_add_func ("/modulemd/v2/common/load_string/regular",
-+                   test_modulemd_load_string_regular);
-+  g_test_add_func ("/modulemd/v2/common/load_string/null",
-+                   test_modulemd_load_string_null);
- 
-   g_test_add_func ("/modulemd/v2/common/packager/read_file",
-                    test_packager_read_file);
--  g_test_add_func ("/modulemd/v2/common/packager/read_string",
--                   test_packager_read_string);
-+  g_test_add_func ("/modulemd/v2/common/packager/read_string/regular",
-+                   test_packager_read_string_regular);
-+  g_test_add_func ("/modulemd/v2/common/packager/read_string/null",
-+                   test_packager_read_string_null);
- 
-   g_test_add_func ("/modulemd/v2/common/empty_profile", test_empty_profile);
- 
-diff --git a/modulemd/tests/test-modulemd-component-module.c b/modulemd/tests/test-modulemd-component-module.c
-index 20e7881..683c774 100644
---- a/modulemd/tests/test-modulemd-component-module.c
-+++ b/modulemd/tests/test-modulemd-component-module.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-component-module.h"
- #include "modulemd-component.h"
-@@ -28,16 +27,8 @@ typedef struct _ComponentModuleFixture
- {
- } ComponentModuleFixture;
- 
--gboolean signaled = FALSE;
--
--static void
--sigtrap_handler (int UNUSED (sig_num))
--{
--  signaled = TRUE;
--}
--
- static void
--component_module_test_construct (void)
-+component_module_test_construct_regular (void)
- {
-   g_autoptr (ModulemdComponentModule) m = NULL;
-   ModulemdComponent *mc = NULL;
-@@ -84,29 +75,49 @@ component_module_test_construct (void)
-     modulemd_component_module_get_repository (m), ==, "somerepo");
-   mc = NULL;
-   g_clear_object (&m);
-+}
- 
--  /* Test that we abort with a NULL name to new() */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  m = modulemd_component_module_new (NULL);
--  g_assert_true (signaled);
--  g_clear_object (&m);
--
--  /* Test that init fails without name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  m = g_object_new (MODULEMD_TYPE_COMPONENT_MODULE, NULL);
--  g_assert_true (signaled);
--  g_clear_object (&m);
-+/* Test that we abort with a NULL name to new() */
-+static void
-+component_module_test_construct_new_null_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdComponentModule) m = NULL;
-+      m = modulemd_component_module_new (NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
--  /* Test that init fails with a NULL name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  m = g_object_new (MODULEMD_TYPE_COMPONENT_MODULE, "name", NULL, NULL);
--  g_assert_true (signaled);
--  g_clear_object (&m);
-+/* Test that init fails without name */
-+static void
-+component_module_test_construct_init_without_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdComponentModule) m = NULL;
-+      m = g_object_new (MODULEMD_TYPE_COMPONENT_MODULE, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
-+/* Test that init fails with a NULL name */
-+static void
-+component_module_test_construct_init_null_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdComponentModule) m = NULL;
-+      m = g_object_new (MODULEMD_TYPE_COMPONENT_MODULE, "name", NULL, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
- static void
- component_module_test_equals (void)
-@@ -421,8 +432,17 @@ main (int argc, char *argv[])
-   g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id=");
- 
-   // Define the tests.
--  g_test_add_func ("/modulemd/v2/component/module/construct",
--                   component_module_test_construct);
-+  g_test_add_func ("/modulemd/v2/component/module/construct/regular",
-+                   component_module_test_construct_regular);
-+
-+  g_test_add_func ("/modulemd/v2/component/module/construct/new_null_name",
-+                   component_module_test_construct_new_null_name);
-+
-+  g_test_add_func ("/modulemd/v2/component/module/construct/init_without_name",
-+                   component_module_test_construct_init_without_name);
-+
-+  g_test_add_func ("/modulemd/v2/component/module/construct/init_null_name",
-+                   component_module_test_construct_init_null_name);
- 
-   g_test_add_func ("/modulemd/v2/component/module/equals",
-                    component_module_test_equals);
-diff --git a/modulemd/tests/test-modulemd-defaults-v1.c b/modulemd/tests/test-modulemd-defaults-v1.c
-index c4fe235..2daa295 100644
---- a/modulemd/tests/test-modulemd-defaults-v1.c
-+++ b/modulemd/tests/test-modulemd-defaults-v1.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-defaults-v1.h"
- #include "private/glib-extensions.h"
-@@ -26,7 +25,7 @@
- 
- 
- static void
--defaults_test_construct (void)
-+defaults_test_construct_regular (void)
- {
-   g_autoptr (ModulemdDefaultsV1) defaults = NULL;
- 
-@@ -37,13 +36,6 @@ defaults_test_construct (void)
-   g_assert_true (MODULEMD_IS_DEFAULTS_V1 (defaults));
-   g_clear_object (&defaults);
- 
--  /* Test new() with a NULL module_name */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  defaults = modulemd_defaults_v1_new (NULL);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_clear_object (&defaults);
--
- 
-   /* Test object instantiation with a valid module name */
-   // clang-format off
-@@ -55,26 +47,57 @@ defaults_test_construct (void)
-   g_assert_true (MODULEMD_IS_DEFAULTS (defaults));
-   g_assert_true (MODULEMD_IS_DEFAULTS_V1 (defaults));
-   g_clear_object (&defaults);
-+}
- 
--  /* Test object instantiation with a NULL module name */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  // clang-format off
--  defaults = g_object_new (MODULEMD_TYPE_DEFAULTS_V1,
--                           "module-name", NULL,
--                           NULL);
--  // clang-format on
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_clear_object (&defaults);
- 
--  /* Test object instantiation without specifying the module name */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  // clang-format off
--  defaults = g_object_new (MODULEMD_TYPE_DEFAULTS_V1, NULL);
--  // clang-format on
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_clear_object (&defaults);
-+/* Test new() with a NULL module_name */
-+static void
-+defaults_test_construct_new_null_module_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDefaultsV1) defaults = NULL;
-+      defaults = modulemd_defaults_v1_new (NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+/* Test object instantiation without specifying the module name */
-+static void
-+defaults_test_construct_init_no_module_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDefaultsV1) defaults = NULL;
-+      // clang-format off
-+      defaults = g_object_new (MODULEMD_TYPE_DEFAULTS_V1, NULL);
-+      // clang-format on
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+/* Test object instantiation with a NULL module name */
-+static void
-+defaults_test_construct_init_null_module_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDefaultsV1) defaults = NULL;
-+      // clang-format off
-+      defaults = g_object_new (MODULEMD_TYPE_DEFAULTS_V1,
-+                               "module-name", NULL,
-+                               NULL);
-+      // clang-format on
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -820,8 +843,14 @@ main (int argc, char *argv[])
-   // Define the tests.
-   g_test_add_func ("/modulemd/v2/defaults/v1/equals", defaults_test_equals);
- 
--  g_test_add_func ("/modulemd/v2/defaults/v1/construct",
--                   defaults_test_construct);
-+  g_test_add_func ("/modulemd/v2/defaults/v1/construct/regular",
-+                   defaults_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/defaults/v1/construct/new_null_module_name",
-+                   defaults_test_construct_new_null_module_name);
-+  g_test_add_func ("/modulemd/v2/defaults/v1/construct/init_no_module_name",
-+                   defaults_test_construct_init_no_module_name);
-+  g_test_add_func ("/modulemd/v2/defaults/v1/construct/init_null_module_name",
-+                   defaults_test_construct_init_null_module_name);
- 
-   g_test_add_func ("/modulemd/v2/defaults/v1/copy", defaults_test_copy);
- 
-diff --git a/modulemd/tests/test-modulemd-defaults.c b/modulemd/tests/test-modulemd-defaults.c
-index 2a46774..562e4fe 100644
---- a/modulemd/tests/test-modulemd-defaults.c
-+++ b/modulemd/tests/test-modulemd-defaults.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-defaults-v1.h"
- #include "modulemd-defaults.h"
-@@ -24,7 +23,7 @@
- #include "private/test-utils.h"
- 
- static void
--defaults_test_construct (void)
-+defaults_test_construct_regular (void)
- {
-   g_autoptr (ModulemdDefaults) defaults = NULL;
- 
-@@ -34,30 +33,51 @@ defaults_test_construct (void)
-   g_assert_true (MODULEMD_IS_DEFAULTS (defaults));
-   g_assert_true (MODULEMD_IS_DEFAULTS_V1 (defaults));
-   g_clear_object (&defaults);
-+}
- 
--  /* Test new() with a zero mdversion */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  defaults = modulemd_defaults_new (0, "foo");
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_assert_null (defaults);
--
--  /* Test new() with a too-high mdversion */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  defaults = modulemd_defaults_new (MD_DEFAULTS_VERSION_LATEST + 1, "foo");
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_assert_null (defaults);
--
--  /* Test new() with a NULL module_name */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  defaults = modulemd_defaults_new (MD_DEFAULTS_VERSION_ONE, NULL);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  /* If we trap the error, defaults actually returns a value here, so free
--   * it
--   */
--  g_clear_object (&defaults);
-+
-+/* Test new() with a zero mdversion */
-+static void
-+defaults_test_construct_zero_mdversion (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDefaults) defaults = NULL;
-+      defaults = modulemd_defaults_new (0, "foo");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+/* Test new() with a too-high mdversion */
-+static void
-+defaults_test_construct_too_high_mdversion (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDefaults) defaults = NULL;
-+      defaults = modulemd_defaults_new (MD_DEFAULTS_VERSION_LATEST + 1, "foo");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+/* Test new() with a NULL module_name */
-+static void
-+defaults_test_new_with_null_module_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDefaults) defaults = NULL;
-+      defaults = modulemd_defaults_new (MD_DEFAULTS_VERSION_ONE, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -203,7 +223,14 @@ main (int argc, char *argv[])
-   g_test_bug_base ("https://bugzilla.redhat.com/show_bug.cgi?id=");
- 
-   // Define the tests.
--  g_test_add_func ("/modulemd/v2/defaults/construct", defaults_test_construct);
-+  g_test_add_func ("/modulemd/v2/defaults/construct/regular",
-+                   defaults_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/defaults/construct/zero_mdversion",
-+                   defaults_test_construct_zero_mdversion);
-+  g_test_add_func ("/modulemd/v2/defaults/construct/too_high_mdversion",
-+                   defaults_test_construct_too_high_mdversion);
-+  g_test_add_func ("/modulemd/v2/defaults/new/with_null_module_name",
-+                   defaults_test_new_with_null_module_name);
- 
-   g_test_add_func ("/modulemd/v2/defaults/copy", defaults_test_copy);
- 
-diff --git a/modulemd/tests/test-modulemd-dependencies.c b/modulemd/tests/test-modulemd-dependencies.c
-index bae0f46..d126dba 100644
---- a/modulemd/tests/test-modulemd-dependencies.c
-+++ b/modulemd/tests/test-modulemd-dependencies.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-dependencies.h"
- #include "private/glib-extensions.h"
-@@ -27,14 +26,6 @@ typedef struct _DependenciesFixture
- {
- } DependenciesFixture;
- 
--gboolean signaled = FALSE;
--
--static void
--sigtrap_handler (int UNUSED (sig_num))
--{
--  signaled = TRUE;
--}
--
- static void
- dependencies_test_construct (void)
- {
-@@ -60,7 +51,7 @@ dependencies_test_construct (void)
- 
- 
- static void
--dependencies_test_dependencies (void)
-+dependencies_test_dependencies_regular (void)
- {
-   g_autoptr (ModulemdDependencies) d = NULL;
-   g_auto (GStrv) list = NULL;
-@@ -73,10 +64,6 @@ dependencies_test_dependencies (void)
-   g_assert_nonnull (list);
-   g_assert_cmpint (g_strv_length (list), ==, 0);
-   g_clear_pointer (&list, g_strfreev);
--  signal (SIGTRAP, sigtrap_handler);
--  list = modulemd_dependencies_get_buildtime_streams_as_strv (d, "buildmod1");
--  g_assert_null (list);
--  g_clear_pointer (&list, g_strfreev);
- 
-   /* Add some deps */
-   modulemd_dependencies_add_buildtime_stream (d, "buildmod1", "stream1");
-@@ -102,10 +89,6 @@ dependencies_test_dependencies (void)
-   g_assert_nonnull (list);
-   g_assert_cmpint (g_strv_length (list), ==, 0);
-   g_clear_pointer (&list, g_strfreev);
--  signal (SIGTRAP, sigtrap_handler);
--  list = modulemd_dependencies_get_runtime_streams_as_strv (d, "buildmod1");
--  g_assert_null (list);
--  g_clear_pointer (&list, g_strfreev);
- 
-   list = modulemd_dependencies_get_runtime_modules_as_strv (d);
-   g_assert_nonnull (list);
-@@ -117,10 +100,6 @@ dependencies_test_dependencies (void)
-   g_assert_nonnull (list);
-   g_assert_cmpint (g_strv_length (list), ==, 0);
-   g_clear_pointer (&list, g_strfreev);
--  signal (SIGTRAP, sigtrap_handler);
--  list = modulemd_dependencies_get_runtime_streams_as_strv (d, "buildmod1");
--  g_assert_null (list);
--  g_clear_pointer (&list, g_strfreev);
-   list = modulemd_dependencies_get_runtime_streams_as_strv (d, "runmod1");
-   g_assert_nonnull (list);
-   g_assert_cmpint (g_strv_length (list), ==, 2);
-@@ -130,6 +109,57 @@ dependencies_test_dependencies (void)
- }
- 
- 
-+static void
-+dependencies_test_dependencies_nonexistent_buildtime_stream (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDependencies) d = NULL;
-+      g_auto (GStrv) list = NULL;
-+
-+      d = modulemd_dependencies_new ();
-+      g_assert_nonnull (d);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d));
-+
-+      list =
-+        modulemd_dependencies_get_buildtime_streams_as_strv (d, "buildmod1");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+static void
-+dependencies_test_dependencies_nonexistent_runtime_stream (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDependencies) d = NULL;
-+      g_auto (GStrv) list = NULL;
-+
-+      d = modulemd_dependencies_new ();
-+      g_assert_nonnull (d);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d));
-+
-+      /* Add some deps */
-+      modulemd_dependencies_add_buildtime_stream (d, "buildmod1", "stream1");
-+      modulemd_dependencies_add_runtime_stream (d, "runmod1", "stream2");
-+      modulemd_dependencies_add_runtime_stream (d, "runmod1", "stream1");
-+      modulemd_dependencies_set_empty_buildtime_dependencies_for_module (
-+        d, "defbuild");
-+      modulemd_dependencies_set_empty_runtime_dependencies_for_module (
-+        d, "defrun");
-+
-+      list =
-+        modulemd_dependencies_get_runtime_streams_as_strv (d, "buildmod1");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
- static void
- dependencies_test_equals (void)
- {
-@@ -298,7 +328,7 @@ dependencies_test_equals (void)
- 
- 
- static void
--dependencies_test_copy (void)
-+dependencies_test_copy_regular (void)
- {
-   g_autoptr (ModulemdDependencies) d = NULL;
-   g_autoptr (ModulemdDependencies) d_copy = NULL;
-@@ -311,10 +341,6 @@ dependencies_test_copy (void)
-   g_assert_nonnull (list);
-   g_assert_cmpint (g_strv_length (list), ==, 0);
-   g_clear_pointer (&list, g_strfreev);
--  signal (SIGTRAP, sigtrap_handler);
--  list = modulemd_dependencies_get_buildtime_streams_as_strv (d, "module1");
--  g_assert_null (list);
--  g_clear_pointer (&list, g_strfreev);
- 
-   d_copy = modulemd_dependencies_copy (d);
-   g_assert_nonnull (d_copy);
-@@ -323,10 +349,6 @@ dependencies_test_copy (void)
-   g_assert_nonnull (list);
-   g_assert_cmpint (g_strv_length (list), ==, 0);
-   g_clear_pointer (&list, g_strfreev);
--  signal (SIGTRAP, sigtrap_handler);
--  list = modulemd_dependencies_get_buildtime_streams_as_strv (d, "module1");
--  g_assert_null (list);
--  g_clear_pointer (&list, g_strfreev);
-   g_clear_object (&d_copy);
- 
-   modulemd_dependencies_add_buildtime_stream (d, "buildmod1", "stream2");
-@@ -347,11 +369,7 @@ dependencies_test_copy (void)
-   g_assert_cmpstr (list[0], ==, "builddef");
-   g_assert_cmpstr (list[1], ==, "buildmod1");
-   g_clear_pointer (&list, g_strfreev);
--  signal (SIGTRAP, sigtrap_handler);
--  list = modulemd_dependencies_get_buildtime_streams_as_strv (d_copy,
--                                                              "nosuchmodule");
--  g_assert_null (list);
--  g_clear_pointer (&list, g_strfreev);
-+
-   list =
-     modulemd_dependencies_get_buildtime_streams_as_strv (d_copy, "buildmod1");
-   g_assert_nonnull (list);
-@@ -371,11 +389,6 @@ dependencies_test_copy (void)
-   g_assert_cmpstr (list[0], ==, "rundef");
-   g_assert_cmpstr (list[1], ==, "runmod1");
-   g_clear_pointer (&list, g_strfreev);
--  signal (SIGTRAP, sigtrap_handler);
--  list =
--    modulemd_dependencies_get_runtime_streams_as_strv (d_copy, "nosuchmodule");
--  g_assert_null (list);
--  g_clear_pointer (&list, g_strfreev);
-   list = modulemd_dependencies_get_runtime_streams_as_strv (d_copy, "runmod1");
-   g_assert_nonnull (list);
-   g_assert_cmpint (g_strv_length (list), ==, 2);
-@@ -388,6 +401,101 @@ dependencies_test_copy (void)
-   g_clear_pointer (&list, g_strfreev);
- }
- 
-+
-+static void
-+dependencies_test_copy_empty_nonexsitent_buildtime_stream (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDependencies) d = NULL;
-+      g_autoptr (ModulemdDependencies) d_copy = NULL;
-+      g_auto (GStrv) list = NULL;
-+
-+      d = modulemd_dependencies_new ();
-+      g_assert_nonnull (d);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d));
-+
-+      d_copy = modulemd_dependencies_copy (d);
-+      g_assert_nonnull (d_copy);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d_copy));
-+
-+      list =
-+        modulemd_dependencies_get_buildtime_streams_as_strv (d, "module1");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+static void
-+dependencies_test_copy_full_nonexsitent_buildtime_stream (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDependencies) d = NULL;
-+      g_autoptr (ModulemdDependencies) d_copy = NULL;
-+      g_auto (GStrv) list = NULL;
-+
-+      d = modulemd_dependencies_new ();
-+      g_assert_nonnull (d);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d));
-+
-+      modulemd_dependencies_add_buildtime_stream (d, "buildmod1", "stream2");
-+      modulemd_dependencies_add_buildtime_stream (d, "buildmod1", "stream1");
-+      modulemd_dependencies_set_empty_buildtime_dependencies_for_module (
-+        d, "builddef");
-+      modulemd_dependencies_add_runtime_stream (d, "runmod1", "stream3");
-+      modulemd_dependencies_add_runtime_stream (d, "runmod1", "stream4");
-+      modulemd_dependencies_set_empty_runtime_dependencies_for_module (
-+        d, "rundef");
-+
-+      d_copy = modulemd_dependencies_copy (d);
-+      g_assert_nonnull (d_copy);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d_copy));
-+      list = modulemd_dependencies_get_buildtime_streams_as_strv (
-+        d_copy, "nosuchmodule");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+static void
-+dependencies_test_copy_full_nonexsitent_runtime_stream (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdDependencies) d = NULL;
-+      g_autoptr (ModulemdDependencies) d_copy = NULL;
-+      g_auto (GStrv) list = NULL;
-+
-+      d = modulemd_dependencies_new ();
-+      g_assert_nonnull (d);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d));
-+
-+      modulemd_dependencies_add_buildtime_stream (d, "buildmod1", "stream2");
-+      modulemd_dependencies_add_buildtime_stream (d, "buildmod1", "stream1");
-+      modulemd_dependencies_set_empty_buildtime_dependencies_for_module (
-+        d, "builddef");
-+      modulemd_dependencies_add_runtime_stream (d, "runmod1", "stream3");
-+      modulemd_dependencies_add_runtime_stream (d, "runmod1", "stream4");
-+      modulemd_dependencies_set_empty_runtime_dependencies_for_module (
-+        d, "rundef");
-+
-+      d_copy = modulemd_dependencies_copy (d);
-+      g_assert_nonnull (d_copy);
-+      g_assert_true (MODULEMD_IS_DEPENDENCIES (d_copy));
-+      list = modulemd_dependencies_get_runtime_streams_as_strv (
-+        d_copy, "nosuchmodule");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
- static void
- dependencies_test_parse_yaml (void)
- {
-@@ -631,13 +739,29 @@ main (int argc, char *argv[])
-   g_test_add_func ("/modulemd/v2/dependencies/construct",
-                    dependencies_test_construct);
- 
--  g_test_add_func ("/modulemd/v2/dependencies/dependencies",
--                   dependencies_test_dependencies);
-+  g_test_add_func ("/modulemd/v2/dependencies/dependencies/regular",
-+                   dependencies_test_dependencies_regular);
-+  g_test_add_func (
-+    "/modulemd/v2/dependencies/dependencies/nonexistent_buildtime_stream",
-+    dependencies_test_dependencies_nonexistent_buildtime_stream);
-+  g_test_add_func (
-+    "/modulemd/v2/dependencies/dependencies/nonexistent_runtime_stream",
-+    dependencies_test_dependencies_nonexistent_runtime_stream);
- 
-   g_test_add_func ("/modulemd/v2/dependencies/equals",
-                    dependencies_test_equals);
- 
--  g_test_add_func ("/modulemd/v2/dependencies/copy", dependencies_test_copy);
-+  g_test_add_func ("/modulemd/v2/dependencies/copy/regular",
-+                   dependencies_test_copy_regular);
-+  g_test_add_func (
-+    "/modulemd/v2/dependencies/copy/empty_nonexsitent_buildtime_stream",
-+    dependencies_test_copy_empty_nonexsitent_buildtime_stream);
-+  g_test_add_func (
-+    "/modulemd/v2/dependencies/copy/full_nonexsitent_buildtime_stream",
-+    dependencies_test_copy_full_nonexsitent_buildtime_stream);
-+  g_test_add_func (
-+    "/modulemd/v2/dependencies/copy/full_nonexsitent_rundtime_stream",
-+    dependencies_test_copy_full_nonexsitent_runtime_stream);
- 
-   g_test_add_func ("/modulemd/v2/dependencies/yaml/parse",
-                    dependencies_test_parse_yaml);
-diff --git a/modulemd/tests/test-modulemd-module.c b/modulemd/tests/test-modulemd-module.c
-index c083c96..7759b37 100644
---- a/modulemd/tests/test-modulemd-module.c
-+++ b/modulemd/tests/test-modulemd-module.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-defaults.h"
- #include "modulemd-module-index-merger.h"
-@@ -38,7 +37,7 @@ typedef struct _ModuleFixture
- 
- 
- static void
--module_test_construct (void)
-+module_test_construct_regular (void)
- {
-   g_autoptr (ModulemdModule) m = NULL;
-   g_autoptr (GPtrArray) list = NULL;
-@@ -66,27 +65,51 @@ module_test_construct (void)
-   g_assert_true (MODULEMD_IS_MODULE (m));
-   g_assert_cmpstr (modulemd_module_get_module_name (m), ==, "testmodule");
-   g_clear_object (&m);
-+}
- 
--  /* Test that we abort with a NULL name to new() */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  m = modulemd_module_new (NULL);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_clear_object (&m);
- 
--  /* Test that we abort if we instantiate without a name */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  m = g_object_new (MODULEMD_TYPE_MODULE, NULL);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_clear_object (&m);
-+/* Test that we abort with a NULL name to new() */
-+static void
-+module_test_construct_new_null_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdModule) m = NULL;
-+      m = modulemd_module_new (NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
--  /* test that we abort if we instantiate with a NULL name */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  m = g_object_new (MODULEMD_TYPE_MODULE, "module-name", NULL, NULL);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  g_clear_object (&m);
-+
-+/* Test that we abort if we instantiate without a name */
-+static void
-+module_test_construct_init_no_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdModule) m = NULL;
-+      m = g_object_new (MODULEMD_TYPE_MODULE, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+/* test that we abort if we instantiate with a NULL name */
-+static void
-+module_test_construct_init_null_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdModule) m = NULL;
-+      m = g_object_new (MODULEMD_TYPE_MODULE, "module-name", NULL, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -801,7 +824,14 @@ main (int argc, char *argv[])
- 
-   // Define the tests.
- 
--  g_test_add_func ("/modulemd/v2/module/construct", module_test_construct);
-+  g_test_add_func ("/modulemd/v2/module/construct/regular",
-+                   module_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/module/construct/new_null_name",
-+                   module_test_construct_new_null_name);
-+  g_test_add_func ("/modulemd/v2/module/construct/init_no_name",
-+                   module_test_construct_init_no_name);
-+  g_test_add_func ("/modulemd/v2/module/construct/init_null_name",
-+                   module_test_construct_init_null_name);
- 
-   g_test_add_func ("/modulemd/v2/module/defaults", module_test_defaults);
- 
-diff --git a/modulemd/tests/test-modulemd-obsoletes.c b/modulemd/tests/test-modulemd-obsoletes.c
-index f3e90d3..d4ced3c 100644
---- a/modulemd/tests/test-modulemd-obsoletes.c
-+++ b/modulemd/tests/test-modulemd-obsoletes.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-subdocument-info.h"
- #include "modulemd-obsoletes.h"
-@@ -26,7 +25,7 @@
- #include "private/test-utils.h"
- 
- static void
--obsoletes_test_construct (void)
-+obsoletes_test_construct_regular (void)
- {
-   g_autoptr (ModulemdObsoletes) e = NULL;
- 
-@@ -39,33 +38,51 @@ obsoletes_test_construct (void)
-   g_assert_cmpstr (modulemd_obsoletes_get_module_stream (e), ==, "teststream");
-   g_assert_cmpstr (modulemd_obsoletes_get_message (e), ==, "testmessage");
-   g_clear_object (&e);
-+}
- 
--  /* Test new() with a NULL module_name */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  e = modulemd_obsoletes_new (
--    MD_OBSOLETES_VERSION_ONE, 2, NULL, "teststream", "testmessage");
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  /* If we trap the error, obsoletes actually returns a value here, so free it */
--  g_clear_object (&e);
-+/* Test new() with a NULL module_name */
-+static void
-+obsoletes_test_construct_null_module_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdObsoletes) e = NULL;
-+      e = modulemd_obsoletes_new (
-+        MD_OBSOLETES_VERSION_ONE, 2, NULL, "teststream", "testmessage");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
--  /* Test new() with a NULL module_context */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  e = modulemd_obsoletes_new (
--    MD_OBSOLETES_VERSION_ONE, 2, "testmodule", NULL, "testmessage");
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  /* If we trap the error, obsoletes actually returns a value here, so free it */
--  g_clear_object (&e);
-+/* Test new() with a NULL module_context */
-+static void
-+obsoletes_test_construct_null_module_context (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdObsoletes) e = NULL;
-+      e = modulemd_obsoletes_new (
-+        MD_OBSOLETES_VERSION_ONE, 2, "testmodule", NULL, "testmessage");
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
--  /* Test new() with a NULL message */
--  modulemd_test_signal = 0;
--  signal (SIGTRAP, modulemd_test_signal_handler);
--  e = modulemd_obsoletes_new (
--    MD_OBSOLETES_VERSION_ONE, 2, "testmodule", "teststream", NULL);
--  g_assert_cmpint (modulemd_test_signal, ==, SIGTRAP);
--  /* If we trap the error, obsoletes actually returns a value here, so free it */
--  g_clear_object (&e);
-+/* Test new() with a NULL message */
-+static void
-+obsoletes_test_construct_null_message (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdObsoletes) e = NULL;
-+      e = modulemd_obsoletes_new (
-+        MD_OBSOLETES_VERSION_ONE, 2, "testmodule", "teststream", NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- static void
-@@ -496,8 +513,14 @@ main (int argc, char *argv[])
- 
-   // Define the tests.
- 
--  g_test_add_func ("/modulemd/v2/obsoletes/construct",
--                   obsoletes_test_construct);
-+  g_test_add_func ("/modulemd/v2/obsoletes/construct/regular",
-+                   obsoletes_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/obsoletes/construct/null_module_name",
-+                   obsoletes_test_construct_null_module_name);
-+  g_test_add_func ("/modulemd/v2/obsoletes/construct/null_module_context",
-+                   obsoletes_test_construct_null_module_context);
-+  g_test_add_func ("/modulemd/v2/obsoletes/construct/null_message",
-+                   obsoletes_test_construct_null_message);
- 
-   g_test_add_func ("/modulemd/v2/obsoletes/copy", obsoletes_test_copy);
- 
-diff --git a/modulemd/tests/test-modulemd-profile.c b/modulemd/tests/test-modulemd-profile.c
-index 3a730c1..b4bd88f 100644
---- a/modulemd/tests/test-modulemd-profile.c
-+++ b/modulemd/tests/test-modulemd-profile.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-profile.h"
- #include "private/glib-extensions.h"
-@@ -26,16 +25,8 @@ typedef struct _ProfileFixture
- {
- } ProfileFixture;
- 
--gboolean signaled = FALSE;
--
- static void
--sigtrap_handler (int UNUSED (sig_num))
--{
--  signaled = TRUE;
--}
--
--static void
--profile_test_construct (void)
-+profile_test_construct_regular (void)
- {
-   g_autoptr (ModulemdProfile) p = NULL;
-   g_auto (GStrv) rpms = NULL;
-@@ -56,27 +47,52 @@ profile_test_construct (void)
-   g_assert_true (MODULEMD_IS_PROFILE (p));
-   g_assert_cmpstr (modulemd_profile_get_name (p), ==, "testprofile");
-   g_clear_object (&p);
-+}
- 
--  /* Test that we abort with a NULL name to new() */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  p = modulemd_profile_new (NULL);
--  g_assert_true (signaled);
--  g_clear_object (&p);
- 
--  /* Test that we abort if we instantiate without a name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  p = g_object_new (MODULEMD_TYPE_PROFILE, NULL);
--  g_assert_true (signaled);
--  g_clear_object (&p);
-+/* Test that we abort with a NULL name to new() */
-+static void
-+profile_test_construct_new_null (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdProfile) p = NULL;
-+      p = modulemd_profile_new (NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
--  /* test that we abort if we instantiate with a NULL name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  p = g_object_new (MODULEMD_TYPE_PROFILE, "name", NULL, NULL);
--  g_assert_true (signaled);
--  g_clear_object (&p);
-+
-+/* Test that we abort if we instantiate without a name */
-+static void
-+profile_test_construct_init_no_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdProfile) p = NULL;
-+      p = g_object_new (MODULEMD_TYPE_PROFILE, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
-+
-+
-+/* Test that we abort if we instantiate with a NULL name */
-+static void
-+profile_test_construct_init_null_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdProfile) p = NULL;
-+
-+      p = g_object_new (MODULEMD_TYPE_PROFILE, "name", NULL, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -353,12 +369,23 @@ profile_test_get_name (void)
- 
-   g_object_get (p, "name", &name, NULL);
-   g_assert_cmpstr (name, ==, "testprofile");
-+}
-+
- 
--  /* Test that name is immutable */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  g_object_set (p, "name", "notatest", NULL);
--  g_assert_true (signaled);
-+/* Test that name is immutable */
-+static void
-+profile_test_name_is_immutable (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdProfile) p = NULL;
-+      p = modulemd_profile_new ("testprofile");
-+
-+      g_object_set (p, "name", "notatest", NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -576,7 +603,14 @@ main (int argc, char *argv[])
- 
-   // Define the tests.
- 
--  g_test_add_func ("/modulemd/v2/profile/construct", profile_test_construct);
-+  g_test_add_func ("/modulemd/v2/profile/construct/regular",
-+                   profile_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/profile/construct/new_null",
-+                   profile_test_construct_new_null);
-+  g_test_add_func ("/modulemd/v2/profile/construct/init_no_name",
-+                   profile_test_construct_init_no_name);
-+  g_test_add_func ("/modulemd/v2/profile/construct/init_null_name",
-+                   profile_test_construct_init_null_name);
- 
-   g_test_add_func ("/modulemd/v2/profile/equals", profile_test_equals);
- 
-@@ -584,6 +618,9 @@ main (int argc, char *argv[])
- 
-   g_test_add_func ("/modulemd/v2/profile/get_name", profile_test_get_name);
- 
-+  g_test_add_func ("/modulemd/v2/profile/name_is_immutable",
-+                   profile_test_name_is_immutable);
-+
-   g_test_add_func ("/modulemd/v2/profile/get_set_description",
-                    profile_test_get_set_description);
- 
-diff --git a/modulemd/tests/test-modulemd-service-level.c b/modulemd/tests/test-modulemd-service-level.c
-index d8ee981..961956d 100644
---- a/modulemd/tests/test-modulemd-service-level.c
-+++ b/modulemd/tests/test-modulemd-service-level.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-service-level.h"
- #include "private/glib-extensions.h"
-@@ -26,16 +25,8 @@ typedef struct _ServiceLevelFixture
- {
- } ServiceLevelFixture;
- 
--gboolean signaled = FALSE;
--
--static void
--sigtrap_handler (int UNUSED (sig_num))
--{
--  signaled = TRUE;
--}
--
- static void
--service_level_test_construct (void)
-+service_level_test_construct_regular (void)
- {
-   g_autoptr (ModulemdServiceLevel) sl = NULL;
- 
-@@ -59,34 +50,55 @@ service_level_test_construct (void)
-   g_assert_cmpstr (modulemd_service_level_get_name (sl), ==, "bar");
-   g_assert_null (modulemd_service_level_get_eol (sl));
-   g_clear_object (&sl);
-+}
- 
- 
--  /* Test that we abort if we call new() with a NULL name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  sl = modulemd_service_level_new (NULL);
--  g_assert_true (signaled);
--  g_clear_object (&sl);
-+/* Test that we abort if we call new() with a NULL name */
-+static void
-+service_level_test_construct_new_null (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdServiceLevel) sl = NULL;
-+      sl = modulemd_service_level_new (NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
- 
--  /* Test that we abort if we instatiate without a name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  sl = g_object_new (MODULEMD_TYPE_SERVICE_LEVEL, NULL);
--  g_assert_true (signaled);
--  g_clear_object (&sl);
-+/* Test that we abort if we instatiate without a name */
-+static void
-+service_level_test_construct_init_no_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdServiceLevel) sl = NULL;
-+      sl = g_object_new (MODULEMD_TYPE_SERVICE_LEVEL, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
- 
--  /* Test that we abort if we instatiate with a NULL name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  // clang-format off
--  sl = g_object_new (MODULEMD_TYPE_SERVICE_LEVEL,
--                     "name", NULL,
--                     NULL);
--  // clang-format on
--  g_assert_true (signaled);
--  g_clear_object (&sl);
-+/* Test that we abort if we instatiate with a NULL name */
-+static void
-+service_level_test_construct_init_null_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdServiceLevel) sl = NULL;
-+      // clang-format off
-+      sl = g_object_new (MODULEMD_TYPE_SERVICE_LEVEL,
-+                         "name", NULL,
-+                         NULL);
-+      // clang-format on
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -249,19 +261,25 @@ service_level_test_get_name (void)
-                 NULL);
-   // clang-format on
-   g_assert_cmpstr (name, ==, "foo");
-+}
- 
- 
--  /* Test that trying to set the name by object properties fails.
--   * The name must be immutable for the life of the object.
--   */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  // clang-format off
--  g_object_set (sl,
--                "name", "bar",
--                NULL);
--  // clang-format on
--  g_assert_true (signaled);
-+/*
-+ * Test that trying to set the name by object properties fails.
-+ * The name must be immutable for the life of the object.
-+ */
-+static void
-+service_level_test_name_is_immutable (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdServiceLevel) sl = NULL;
-+      sl = modulemd_service_level_new ("foo");
-+      g_object_set (sl, "name", "bar", NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -476,12 +494,21 @@ main (int argc, char *argv[])
- 
-   // Define the tests.
- 
--  g_test_add_func ("/modulemd/v2/servicelevel/construct",
--                   service_level_test_construct);
-+  g_test_add_func ("/modulemd/v2/servicelevel/construct/regular",
-+                   service_level_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/servicelevel/construct/new_null",
-+                   service_level_test_construct_new_null);
-+  g_test_add_func ("/modulemd/v2/servicelevel/construct/init_no_name",
-+                   service_level_test_construct_init_no_name);
-+  g_test_add_func ("/modulemd/v2/servicelevel/construct/init_null_name",
-+                   service_level_test_construct_init_null_name);
- 
-   g_test_add_func ("/modulemd/v2/servicelevel/get_set_name",
-                    service_level_test_get_name);
- 
-+  g_test_add_func ("/modulemd/v2/servicelevel/name_is_immutable",
-+                   service_level_test_name_is_immutable);
-+
-   g_test_add_func ("/modulemd/v2/servicelevel/equals",
-                    service_level_test_equals);
- 
-diff --git a/modulemd/tests/test-modulemd-translation-entry.c b/modulemd/tests/test-modulemd-translation-entry.c
-index 858bdfa..ee17940 100644
---- a/modulemd/tests/test-modulemd-translation-entry.c
-+++ b/modulemd/tests/test-modulemd-translation-entry.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-translation-entry.h"
- #include "private/glib-extensions.h"
-@@ -26,16 +25,8 @@ typedef struct _TranslationEntryFixture
- {
- } TranslationEntryFixture;
- 
--gboolean signaled = FALSE;
--
- static void
--sigtrap_handler (int UNUSED (sig_num))
--{
--  signaled = TRUE;
--}
--
--static void
--translation_entry_test_construct (void)
-+translation_entry_test_construct_regular (void)
- {
-   g_autoptr (ModulemdTranslationEntry) te = NULL;
-   g_auto (GStrv) profile_names = NULL;
-@@ -110,34 +101,55 @@ translation_entry_test_construct (void)
-   g_assert_cmpstr (
-     modulemd_translation_entry_get_description (te), ==, "jumped");
-   g_clear_object (&te);
-+}
- 
- 
--  /* Test that we abort if we call new() with a NULL locale */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  te = modulemd_translation_entry_new (NULL);
--  g_assert_true (signaled);
--  g_clear_object (&te);
-+/* Test that we abort if we call new() with a NULL locale */
-+static void
-+translation_entry_test_construct_new_null (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdTranslationEntry) te = NULL;
-+      te = modulemd_translation_entry_new (NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
- 
--  /* Test that we abort if we instatiate without a locale */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  te = g_object_new (MODULEMD_TYPE_TRANSLATION_ENTRY, NULL);
--  g_assert_true (signaled);
--  g_clear_object (&te);
-+/* Test that we abort if we instatiate without a locale */
-+static void
-+translation_entry_test_construct_init_no_locale (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdTranslationEntry) te = NULL;
-+      te = g_object_new (MODULEMD_TYPE_TRANSLATION_ENTRY, NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
- 
--  /* Test that we abort if we instatiate with a NULL locale */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  // clang-format off
--  te = g_object_new (MODULEMD_TYPE_TRANSLATION_ENTRY,
--                     "locale", NULL,
--                     NULL);
--  // clang-format on
--  g_assert_true (signaled);
--  g_clear_object (&te);
-+/* Test that we abort if we instatiate with a NULL locale */
-+static void
-+translation_entry_test_construct_init_null_locale (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdTranslationEntry) te = NULL;
-+      // clang-format off
-+      te = g_object_new (MODULEMD_TYPE_TRANSLATION_ENTRY,
-+                         "locale", NULL,
-+                         NULL);
-+      // clang-format on
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -334,12 +346,26 @@ translation_entry_test_get_locale (void)
- 
-   g_object_get (te, "locale", &locale, NULL);
-   g_assert_cmpstr (locale, ==, "en_US");
-+}
-+
- 
--  /* Test that locale is immutable */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  g_object_set (te, "locale", "en_GB", NULL);
--  g_assert_true (signaled);
-+/* Test that locale is immutable */
-+static void
-+translation_entry_test_locale_is_immutable (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdTranslationEntry) te = NULL;
-+
-+      te = modulemd_translation_entry_new ("en_US");
-+      g_assert_nonnull (te);
-+      g_assert_true (MODULEMD_IS_TRANSLATION_ENTRY (te));
-+
-+      g_object_set (te, "locale", "en_GB", NULL);
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- 
-@@ -609,8 +635,14 @@ main (int argc, char *argv[])
- 
-   // Define the tests.
- 
--  g_test_add_func ("/modulemd/v2/translationentry/construct",
--                   translation_entry_test_construct);
-+  g_test_add_func ("/modulemd/v2/translationentry/construct/regular",
-+                   translation_entry_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/translationentry/construct/new_null",
-+                   translation_entry_test_construct_new_null);
-+  g_test_add_func ("/modulemd/v2/translationentry/construct/init_no_locale",
-+                   translation_entry_test_construct_init_no_locale);
-+  g_test_add_func ("/modulemd/v2/translationentry/construct/init_null_locale",
-+                   translation_entry_test_construct_init_null_locale);
- 
-   g_test_add_func ("/modulemd/v2/translationentry/copy",
-                    translation_entry_test_copy);
-@@ -618,6 +650,9 @@ main (int argc, char *argv[])
-   g_test_add_func ("/modulemd/v2/translationentry/get_locale",
-                    translation_entry_test_get_locale);
- 
-+  g_test_add_func ("/modulemd/v2/translationentry/locale_is_immutable",
-+                   translation_entry_test_locale_is_immutable);
-+
-   g_test_add_func ("/modulemd/v2/translationentry/get_set_summary",
-                    translation_entry_test_get_set_summary);
- 
-diff --git a/modulemd/tests/test-modulemd-translation.c b/modulemd/tests/test-modulemd-translation.c
-index 655200f..a67b787 100644
---- a/modulemd/tests/test-modulemd-translation.c
-+++ b/modulemd/tests/test-modulemd-translation.c
-@@ -14,7 +14,6 @@
- #include <glib.h>
- #include <glib/gstdio.h>
- #include <locale.h>
--#include <signal.h>
- 
- #include "modulemd-subdocument-info.h"
- #include "modulemd-translation-entry.h"
-@@ -30,17 +29,9 @@ typedef struct _TranslationFixture
- {
- } TranslationFixture;
- 
--gboolean signaled = FALSE;
- 
- static void
--sigtrap_handler (int UNUSED (sig_num))
--{
--  signaled = TRUE;
--}
--
--
--static void
--translation_test_construct (void)
-+translation_test_construct_regular (void)
- {
-   g_autoptr (ModulemdTranslation) t = NULL;
-   g_auto (GStrv) locales = NULL;
-@@ -94,41 +85,64 @@ translation_test_construct (void)
-   g_assert_cmpstr (modulemd_translation_get_module_stream (t), ==, "teststr");
-   g_assert_cmpint (modulemd_translation_get_modified (t), ==, modified);
-   g_clear_object (&t);
-+}
- 
--  /* Test that object_new does not work without a version */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  // clang-format off
--  t = g_object_new (MODULEMD_TYPE_TRANSLATION,
--                    "module_name", "testmod",
--                    "module_stream", "teststr",
--                    NULL);
--  // clang-format on
--  g_assert_true (signaled);
--  g_clear_object (&t);
-+/* Test that object_new does not work without a version */
-+static void
-+translation_test_construct_no_version (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      g_autoptr (ModulemdTranslation) t = NULL;
-+      // clang-format off
-+      t = g_object_new (MODULEMD_TYPE_TRANSLATION,
-+                        "module_name", "testmod",
-+                        "module_stream", "teststr",
-+                        NULL);
-+      // clang-format on
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
--  /* Test that object_new does not work without a name */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  // clang-format off
--  t = g_object_new (MODULEMD_TYPE_TRANSLATION,
--                    "version", translation_version,
--                    "module_stream", "teststr", NULL);
--  // clang-format on
--  g_assert_true (signaled);
--  g_clear_object (&t);
-+/* Test that object_new does not work without a name */
-+static void
-+translation_test_construct_no_name (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      guint64 translation_version = 1;
-+      g_autoptr (ModulemdTranslation) t = NULL;
-+      // clang-format off
-+      t = g_object_new (MODULEMD_TYPE_TRANSLATION,
-+                        "version", translation_version,
-+                        "module_stream", "teststr", NULL);
-+      // clang-format on
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
-+}
- 
--  /* Test that object_new does not work without a stream */
--  signaled = FALSE;
--  signal (SIGTRAP, sigtrap_handler);
--  // clang-format off
--  t = g_object_new (MODULEMD_TYPE_TRANSLATION,
--                    "version", translation_version,
--                    "module_name", "testmod",
--                    NULL);
--  // clang-format on
--  g_assert_true (signaled);
--  g_clear_object (&t);
-+/* Test that object_new does not work without a stream */
-+static void
-+translation_test_construct_no_stream (void)
-+{
-+  if (g_test_subprocess ())
-+    {
-+      guint64 translation_version = 1;
-+      g_autoptr (ModulemdTranslation) t = NULL;
-+      // clang-format off
-+      t = g_object_new (MODULEMD_TYPE_TRANSLATION,
-+                        "version", translation_version,
-+                        "module_name", "testmod",
-+                        NULL);
-+      // clang-format on
-+      return;
-+    }
-+  g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
-+  g_test_trap_assert_failed ();
- }
- 
- static void
-@@ -416,8 +430,14 @@ main (int argc, char *argv[])
- 
-   // Define the tests.
- 
--  g_test_add_func ("/modulemd/v2/translation/construct",
--                   translation_test_construct);
-+  g_test_add_func ("/modulemd/v2/translation/construct/regular",
-+                   translation_test_construct_regular);
-+  g_test_add_func ("/modulemd/v2/translation/construct/no_version",
-+                   translation_test_construct_no_version);
-+  g_test_add_func ("/modulemd/v2/translation/construct/no_name",
-+                   translation_test_construct_no_name);
-+  g_test_add_func ("/modulemd/v2/translation/construct/no_stream",
-+                   translation_test_construct_no_stream);
- 
-   g_test_add_func ("/modulemd/v2/translation/copy", translation_test_copy);
- 
--- 
-2.52.0
-

diff --git a/modulemd-2.15.2-tests-Adapt-to-pygobject-3.55.0.patch b/modulemd-2.15.2-tests-Adapt-to-pygobject-3.55.0.patch
deleted file mode 100644
index 6c4c517..0000000
--- a/modulemd-2.15.2-tests-Adapt-to-pygobject-3.55.0.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From e33ecf1cc15383b9563bc4cd9a6908277bf8039d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
-Date: Tue, 24 Feb 2026 13:35:17 +0100
-Subject: [PATCH] tests: Adapt to pygobject 3.55.0
-
-After upgrading pygobject from 3.54.5 to 3.55.2, Python tests
-expecting a process failure on setting an immutable
-(G_PARAM_CONSTRUCT_ONLY) property started to fail like this:
-
-    Traceback (most recent call last):
-      File "/home/test/libmodulemd-devel/redhat-linux-build/../modulemd/tests/ModulemdTests/defaults.py", line 114, in test_module_name
-	self.assertProcessFailure(_set_module_name_to_none, defs)
-	~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-      File "/home/test/libmodulemd-devel/modulemd/tests/ModulemdTests/base.py", line 60, in assertProcessFailure
-	callable(*args)
-	~~~~~~~~^^^^^^^
-      File "/home/test/libmodulemd-devel/redhat-linux-build/../modulemd/tests/ModulemdTests/defaults.py", line 43, in _set_module_name_to_none
-	defs.props.module_name = None
-	^^^^^^^^^^^^^^^^^^^^^^
-    TypeError: property 'module-name' can only be set in constructor
-
-The cause was that pygobject-3.55.0 started to raise a Python
-TypeError exception instead of calling Glib functions which would fail
-on its own depending on Glib warning fatality and Glib version. An example:
-
-    cat /tmp/test.py
-    #!/usr/bin/python3
-
-    import gi
-    gi.require_version("Modulemd", "2.0")
-    from gi.repository import Modulemd
-
-    object = Modulemd.Defaults.new(Modulemd.DefaultsVersionEnum.LATEST, "foo")
-    object.props.module_name = "bar"
-
-Before:
-
-    $ /tmp/test.py
-    /tmp/test.py:8: Warning: g_object_set_is_valid_property: construct property "module-name" for object 'ModulemdDefaultsV1' can't be set after construction
-      object.props.module_name = "bar"
-
-After:
-
-    $ /tmp/test.py
-    Traceback (most recent call last):
-      File "/tmp/test.py", line 8, in <module>
-	object.props.module_name = "bar"
-	^^^^^^^^^^^^^^^^^^^^^^^^
-    TypeError: property 'module-name' can only be set in constructor
-
-That was an intentional change in pygobject
-3b6e4804de4f26cfb9472666f18f44ac731d874c commit (gi: Factor out
-pygi_set_property_gvalue_from_property_info). Probably an
-optimization.
-
-This patch adjusts the tests to pass if TypeError exception is raised
-regardless of Glib warning fatality.
-
-Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2440570
----
- modulemd/tests/ModulemdTests/base.py          | 30 +++++++++++++++++++
- modulemd/tests/ModulemdTests/defaults.py      |  4 ++-
- modulemd/tests/ModulemdTests/profile.py       |  4 ++-
- modulemd/tests/ModulemdTests/servicelevel.py  |  2 +-
- .../tests/ModulemdTests/translationentry.py   |  2 +-
- 5 files changed, 38 insertions(+), 4 deletions(-)
-
-diff --git a/modulemd/tests/ModulemdTests/base.py b/modulemd/tests/ModulemdTests/base.py
-index 55ac742..16b90e0 100644
---- a/modulemd/tests/ModulemdTests/base.py
-+++ b/modulemd/tests/ModulemdTests/base.py
-@@ -67,6 +67,36 @@ class TestBase(unittest.TestCase):
-             if os.WIFSIGNALED(status):
-                 raise AssertionError("Child process was unexpectedly aborted")
- 
-+    def assertTypeExceptionOrProcessFailure(self, callable, *args):
-+        """Calls the callable in a subprocess and checks that the process
-+        raised a TypeError exception, or was killed depending on Glib warning
-+        fatality.
-+
-+        Since pygobject-3.55.0 setting a G_PARAM_CONSTRUCT_ONLY property
-+        raises a Python exception. Old pygobject continues down to Glib
-+        which kills the process if Glib warnings a fatal, otherwise Glib
-+        warning is printed and the code continues.
-+        """
-+        pid = os.fork()
-+        if pid == 0:
-+            try:
-+                callable(*args)
-+            except TypeError:
-+                os._exit(1)
-+            os._exit(0)
-+        _, status = os.waitpid(pid, 0)
-+        if os.WIFEXITED(status) and os.WEXITSTATUS(status) == 1:
-+            return
-+        if self.warnings_fatal:
-+            if not os.WIFSIGNALED(status):
-+                raise AssertionError(
-+                    "Child process did not raise TypeError "
-+                    "exception or was not aborted"
-+                )
-+        else:
-+            if os.WIFSIGNALED(status):
-+                raise AssertionError("Child process was unexpectedly aborted")
-+
-     @property
-     def warnings_fatal(self):
-         gdebug = os.getenv("G_DEBUG", "").split(",")
-diff --git a/modulemd/tests/ModulemdTests/defaults.py b/modulemd/tests/ModulemdTests/defaults.py
-index 3a1b9fe..2f2ec02 100644
---- a/modulemd/tests/ModulemdTests/defaults.py
-+++ b/modulemd/tests/ModulemdTests/defaults.py
-@@ -111,7 +111,9 @@ class TestDefaults(TestBase):
-         assert defs.get_module_name() == "foo"
- 
-         # Ensure we cannot set the module_name
--        self.assertProcessFailure(_set_module_name_to_none, defs)
-+        self.assertTypeExceptionOrProcessFailure(
-+            _set_module_name_to_none, defs
-+        )
- 
-     def test_modified(self):
-         defs = Modulemd.Defaults.new(
-diff --git a/modulemd/tests/ModulemdTests/profile.py b/modulemd/tests/ModulemdTests/profile.py
-index 765c57d..f8c7b93 100644
---- a/modulemd/tests/ModulemdTests/profile.py
-+++ b/modulemd/tests/ModulemdTests/profile.py
-@@ -94,7 +94,9 @@ class TestProfile(TestBase):
-         assert p.get_name() == "testprofile"
-         assert p.props.name == "testprofile"
- 
--        self.assertProcessFailure(_set_props_name, p, "notadrill")
-+        self.assertTypeExceptionOrProcessFailure(
-+            _set_props_name, p, "notadrill"
-+        )
- 
-     def test_get_set_description(self):
-         p = Modulemd.Profile(name="testprofile")
-diff --git a/modulemd/tests/ModulemdTests/servicelevel.py b/modulemd/tests/ModulemdTests/servicelevel.py
-index fc9c648..71289eb 100644
---- a/modulemd/tests/ModulemdTests/servicelevel.py
-+++ b/modulemd/tests/ModulemdTests/servicelevel.py
-@@ -103,7 +103,7 @@ class TestServiceLevel(TestBase):
-         assert sl.props.name == "foo"
- 
-         # This property is not writable, make sure it fails to attempt it
--        self.assertProcessFailure(_set_props_name, sl, "bar")
-+        self.assertTypeExceptionOrProcessFailure(_set_props_name, sl, "bar")
- 
-     def test_get_set_eol(self):
-         sl = Modulemd.ServiceLevel.new("foo")
-diff --git a/modulemd/tests/ModulemdTests/translationentry.py b/modulemd/tests/ModulemdTests/translationentry.py
-index 9fce443..685349e 100644
---- a/modulemd/tests/ModulemdTests/translationentry.py
-+++ b/modulemd/tests/ModulemdTests/translationentry.py
-@@ -172,7 +172,7 @@ class TestTranslationEntry(TestBase):
-         assert te.get_locale() == "en_US"
-         assert te.props.locale == "en_US"
- 
--        self.assertProcessFailure(_set_locale, te)
-+        self.assertTypeExceptionOrProcessFailure(_set_locale, te)
- 
-     def test_get_set_summary(self):
-         te = Modulemd.TranslationEntry(locale="en_US")
--- 
-2.53.0
-

diff --git a/sources b/sources
index a912538..cb103ed 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (modulemd-2.15.2.tar.xz) = d1785f6982ed19292103d741e3e94581e9789737be6f8e90d19218296f3aeb87d6589f3247744f8eab4f714d298d1508312b119624a8c32086c720becfa4cdc5
-SHA512 (modulemd-2.15.2.tar.xz.asc) = 282ff35f15418e95aae09d9bff8084aa0b6f2732cea3934a84a1bd4ddd8e50c8375466acb6a39a6e632f4bbbefd49735b7f56e9304d52521786e245f52feae24
+SHA512 (modulemd-2.15.3.tar.xz) = b8c2f80553b66704e8117a6608cbfc1b1a47cb8f260503193c58aff702c2e11cd79b795482d0c9a953ab73e53ecb8133682fe2e8a0755eca1d99b718bbccfde2
+SHA512 (modulemd-2.15.3.tar.xz.asc) = ac08c79ad6ae5be2e8085b2a598848c4121d21fe25a5bd64c05b36a7558d07b2e55fb468ae2633a8d880212b3c711163291070381d04082707d0236e58e21e9b

                 reply	other threads:[~2026-06-12 13:07 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178126962301.1.8850378858381981030.rpms-libmodulemd-b34829e6232d@fedoraproject.org \
    --to=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox