107 lines
3.6 KiB
Diff
107 lines
3.6 KiB
Diff
From f66d185dd5c2c1750b3626c2e0bdfeab63e427b6 Mon Sep 17 00:00:00 2001
|
|
From: Stephen Gallagher <sgallagh@redhat.com>
|
|
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 <sgallagh@redhat.com>
|
|
---
|
|
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
|
|
# <https://www.gnu.org/philosophy/free-sw.en.html>.
|
|
|
|
+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
|
|
|