From f66d185dd5c2c1750b3626c2e0bdfeab63e427b6 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Fri, 11 Jan 2019 08:36:11 -0500 Subject: [PATCH] Include modified value when copying Defaults objects The symptom of this was that any defaults object read from a YAML stream would end up stored in the ModuleIndex with the a zero for the modified value. Signed-off-by: Stephen Gallagher --- modulemd/v2/modulemd-defaults.c | 7 ++++-- modulemd/v2/tests/ModulemdTests/defaults.py | 25 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/modulemd/v2/modulemd-defaults.c b/modulemd/v2/modulemd-defaults.c index 9e5c31b499704ae7a8543c91b9ea3bbf0dbf981d..c577d4a0c3db45319c8e0582b4cc07f3943836fa 100644 --- a/modulemd/v2/modulemd-defaults.c +++ b/modulemd/v2/modulemd-defaults.c @@ -91,14 +91,18 @@ modulemd_defaults_copy (ModulemdDefaults *self) static ModulemdDefaults * modulemd_defaults_default_copy (ModulemdDefaults *self) { + g_autoptr (ModulemdDefaults) copy = NULL; g_return_val_if_fail (MODULEMD_IS_DEFAULTS (self), NULL); - return modulemd_defaults_new (modulemd_defaults_get_mdversion (self), + copy = modulemd_defaults_new (modulemd_defaults_get_mdversion (self), modulemd_defaults_get_module_name (self)); + modulemd_defaults_set_modified (copy, modulemd_defaults_get_modified (self)); + + return g_steal_pointer (©); } gboolean modulemd_defaults_validate (ModulemdDefaults *self, GError **error) @@ -214,11 +218,10 @@ modulemd_defaults_set_modified (ModulemdDefaults *self, guint64 modified) { g_return_if_fail (MODULEMD_IS_DEFAULTS (self)); ModulemdDefaultsPrivate *priv = modulemd_defaults_get_instance_private (self); - priv->modified = modified; } guint64 diff --git a/modulemd/v2/tests/ModulemdTests/defaults.py b/modulemd/v2/tests/ModulemdTests/defaults.py index ddac23bbed573b3725feb8cb0090fb878a1f4f22..9a783d25617fc53f59448bc32a68c6e2755dd034 100644 --- a/modulemd/v2/tests/ModulemdTests/defaults.py +++ b/modulemd/v2/tests/ModulemdTests/defaults.py @@ -10,11 +10,13 @@ # This program is free software. # For more information on the license, see COPYING. # For more information on free software, see # . +import os import sys + try: import unittest import gi gi.require_version('Modulemd', '2.0') from gi.repository import Modulemd @@ -92,10 +94,33 @@ class TestDefaults(TestBase): # Ensure we cannot set the module_name with self.expect_signal(): defs.props.module_name = None + def test_modified(self): + defs = Modulemd.Defaults.new( + Modulemd.DefaultsVersionEnum.LATEST, 'foo') + self.assertIsNotNone(defs) + + self.assertEqual(defs.get_modified(), 0) + + defs.set_modified(201901110830) + + self.assertEqual(defs.get_modified(), 201901110830) + + # Load a defaults object into an Index + index = Modulemd.ModuleIndex.new() + index.update_from_file("%s/mod-defaults/spec.v1.yaml" % ( + os.getenv('MESON_SOURCE_ROOT')), True) + module_names = index.get_module_names() + self.assertEqual(len(module_names), 1) + + defs = index.get_module(index.get_module_names()[0]).get_defaults() + self.assertIsNotNone(defs) + + self.assertEqual(defs.get_modified(), 201812071200) + def test_validate(self): defs = Modulemd.Defaults.new( Modulemd.DefaultsVersionEnum.LATEST, 'foo') assert defs -- 2.20.1