|
|
67dae6 |
From 340e316bd6384562086b4e381c8cd42b1ccd0781 Mon Sep 17 00:00:00 2001
|
|
|
67dae6 |
From: Stephen Gallagher <sgallagh@redhat.com>
|
|
|
67dae6 |
Date: Tue, 28 May 2019 14:28:30 -0400
|
|
|
67dae6 |
Subject: [PATCH 3/3] Fix transfer type for Module.search_streams()
|
|
|
67dae6 |
|
|
|
67dae6 |
Technically this is an API-breaking change, but no one is using it
|
|
|
67dae6 |
yet and it was always expected to be managed this way.
|
|
|
67dae6 |
|
|
|
67dae6 |
Fixes: https://github.com/fedora-modularity/libmodulemd/issues/308
|
|
|
67dae6 |
|
|
|
67dae6 |
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
|
|
|
67dae6 |
---
|
|
|
67dae6 |
modulemd/meson.build | 1 +
|
|
|
67dae6 |
.../v2/include/modulemd-2.0/modulemd-module.h | 4 +-
|
|
|
67dae6 |
modulemd/v2/meson.build | 17 ++++++-
|
|
|
67dae6 |
modulemd/v2/tests/ModulemdTests/module.py | 46 +++++++++++++++++++
|
|
|
67dae6 |
4 files changed, 65 insertions(+), 3 deletions(-)
|
|
|
67dae6 |
create mode 100644 modulemd/v2/tests/ModulemdTests/module.py
|
|
|
67dae6 |
|
|
|
67dae6 |
diff --git a/modulemd/meson.build b/modulemd/meson.build
|
|
|
67dae6 |
index e49c7a9df76dcf37a18ddeba3150d6c914aa4e25..e5912d4041ba3e427d13b98c0eeca5217d48244b 100644
|
|
|
67dae6 |
--- a/modulemd/meson.build
|
|
|
67dae6 |
+++ b/modulemd/meson.build
|
|
|
67dae6 |
@@ -229,10 +229,11 @@ test_v2_python_scripts = files(
|
|
|
67dae6 |
'v2/tests/ModulemdTests/componentrpm.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/defaults.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/defaultsv1.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/dependencies.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/merger.py',
|
|
|
67dae6 |
+ 'v2/tests/ModulemdTests/module.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/moduleindex.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/modulestream.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/profile.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/rpmmap.py',
|
|
|
67dae6 |
'v2/tests/ModulemdTests/servicelevel.py',
|
|
|
67dae6 |
diff --git a/modulemd/v2/include/modulemd-2.0/modulemd-module.h b/modulemd/v2/include/modulemd-2.0/modulemd-module.h
|
|
|
67dae6 |
index 45be9c0ae96e203707da61d84f18c71c4a826035..0219cfe227652813d20bdf736f9033782084c5ad 100644
|
|
|
67dae6 |
--- a/modulemd/v2/include/modulemd-2.0/modulemd-module.h
|
|
|
67dae6 |
+++ b/modulemd/v2/include/modulemd-2.0/modulemd-module.h
|
|
|
67dae6 |
@@ -129,12 +129,12 @@ modulemd_module_get_stream_by_NSVC (ModulemdModule *self,
|
|
|
67dae6 |
* @context: (nullable): The context of the stream to retrieve. If NULL, the
|
|
|
67dae6 |
* context is not included in the search.
|
|
|
67dae6 |
* @arch: (nullable): The processor architecture of the stream to retrieve. If
|
|
|
67dae6 |
* NULL, the architecture is not included in the search.
|
|
|
67dae6 |
*
|
|
|
67dae6 |
- * Returns: (transfer full) (element-type ModulemdModuleStream): The list of
|
|
|
67dae6 |
- * stream objects matching the requested parameters. This function cannot
|
|
|
67dae6 |
+ * Returns: (transfer container) (element-type ModulemdModuleStream): The list
|
|
|
67dae6 |
+ * of stream objects matching the requested parameters. This function cannot
|
|
|
67dae6 |
* fail, but it may return a zero-length list if no matches were found. The
|
|
|
67dae6 |
* returned streams will be in a predictable order, sorted first by stream
|
|
|
67dae6 |
* name, then by version (highest to lowest), then by context and finally by
|
|
|
67dae6 |
* architecture.
|
|
|
67dae6 |
*
|
|
|
67dae6 |
diff --git a/modulemd/v2/meson.build b/modulemd/v2/meson.build
|
|
|
67dae6 |
index 3f45db2c4e0e9a8996c74dffd949d5276082dc6f..e8a5a38f0528c4f860f0b84ef63609ff5fd89caa 100644
|
|
|
67dae6 |
--- a/modulemd/v2/meson.build
|
|
|
67dae6 |
+++ b/modulemd/v2/meson.build
|
|
|
67dae6 |
@@ -390,20 +390,35 @@ test ('dependencies_python2_debug', python2,
|
|
|
67dae6 |
args : dependencies_python_script)
|
|
|
67dae6 |
test ('dependencies_python2_release', python2,
|
|
|
67dae6 |
env : py_test_release_env,
|
|
|
67dae6 |
args : dependencies_python_script)
|
|
|
67dae6 |
|
|
|
67dae6 |
+# -- Test Modulemd.Module (Python) -- #
|
|
|
67dae6 |
+module_python_script = files('tests/ModulemdTests/module.py')
|
|
|
67dae6 |
+test ('module_python3_debug', python3,
|
|
|
67dae6 |
+ env : py_test_env,
|
|
|
67dae6 |
+ args : module_python_script)
|
|
|
67dae6 |
+test ('module_python3_release', python3,
|
|
|
67dae6 |
+ env : py_test_release_env,
|
|
|
67dae6 |
+ args : module_python_script)
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+test ('module_python2_debug', python2,
|
|
|
67dae6 |
+ env : py_test_env,
|
|
|
67dae6 |
+ args : module_python_script)
|
|
|
67dae6 |
+test ('module_python2_release', python2,
|
|
|
67dae6 |
+ env : py_test_release_env,
|
|
|
67dae6 |
+ args : module_python_script)
|
|
|
67dae6 |
+
|
|
|
67dae6 |
# -- Test Modulemd.ModuleIndex (Python) -- #
|
|
|
67dae6 |
moduleindex_python_script = files('tests/ModulemdTests/moduleindex.py')
|
|
|
67dae6 |
test ('moduleindex_python3_debug', python3,
|
|
|
67dae6 |
env : py_test_env,
|
|
|
67dae6 |
args : moduleindex_python_script)
|
|
|
67dae6 |
test ('moduleindex_python3_release', python3,
|
|
|
67dae6 |
env : py_test_release_env,
|
|
|
67dae6 |
args : moduleindex_python_script)
|
|
|
67dae6 |
|
|
|
67dae6 |
-moduleindex_python_script = files('tests/ModulemdTests/moduleindex.py')
|
|
|
67dae6 |
test ('moduleindex_python2_debug', python2,
|
|
|
67dae6 |
env : py_test_env,
|
|
|
67dae6 |
args : moduleindex_python_script)
|
|
|
67dae6 |
test ('moduleindex_python2_release', python2,
|
|
|
67dae6 |
env : py_test_release_env,
|
|
|
67dae6 |
diff --git a/modulemd/v2/tests/ModulemdTests/module.py b/modulemd/v2/tests/ModulemdTests/module.py
|
|
|
67dae6 |
new file mode 100644
|
|
|
67dae6 |
index 0000000000000000000000000000000000000000..b604d9c9b357c4a5211d3ba5b4d0aba08c3a42bd
|
|
|
67dae6 |
--- /dev/null
|
|
|
67dae6 |
+++ b/modulemd/v2/tests/ModulemdTests/module.py
|
|
|
67dae6 |
@@ -0,0 +1,46 @@
|
|
|
67dae6 |
+#!/usr/bin/python3
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+# This file is part of libmodulemd
|
|
|
67dae6 |
+# Copyright (C) 2017-2018 Stephen Gallagher
|
|
|
67dae6 |
+#
|
|
|
67dae6 |
+# Fedora-License-Identifier: MIT
|
|
|
67dae6 |
+# SPDX-2.0-License-Identifier: MIT
|
|
|
67dae6 |
+# SPDX-3.0-License-Identifier: MIT
|
|
|
67dae6 |
+#
|
|
|
67dae6 |
+# This program is free software.
|
|
|
67dae6 |
+# For more information on the license, see COPYING.
|
|
|
67dae6 |
+# For more information on free software, see
|
|
|
67dae6 |
+# <https://www.gnu.org/philosophy/free-sw.en.html>.
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+from os import path
|
|
|
67dae6 |
+import sys
|
|
|
67dae6 |
+try:
|
|
|
67dae6 |
+ import unittest
|
|
|
67dae6 |
+ import gi
|
|
|
67dae6 |
+ gi.require_version('Modulemd', '2.0')
|
|
|
67dae6 |
+ from gi.repository import Modulemd
|
|
|
67dae6 |
+ from gi.repository.Modulemd import ModuleIndex
|
|
|
67dae6 |
+ from gi.repository import GLib
|
|
|
67dae6 |
+except ImportError:
|
|
|
67dae6 |
+ # Return error 77 to skip this test on platforms without the necessary
|
|
|
67dae6 |
+ # python modules
|
|
|
67dae6 |
+ sys.exit(77)
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+from base import TestBase
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+class TestModule(TestBase):
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+ def test_search_streams(self):
|
|
|
67dae6 |
+ idx = Modulemd.ModuleIndex.new()
|
|
|
67dae6 |
+ idx.update_from_file(path.join(self.source_root,
|
|
|
67dae6 |
+ "modulemd/v2/tests/test_data/f29.yaml"),
|
|
|
67dae6 |
+ True)
|
|
|
67dae6 |
+ module = idx.get_module('nodejs')
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+ self.assertEquals(len(module.search_streams('8', 0)), 1)
|
|
|
67dae6 |
+ self.assertEquals(len(module.search_streams('10', 0)), 1)
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+
|
|
|
67dae6 |
+if __name__ == '__main__':
|
|
|
67dae6 |
+ unittest.main()
|
|
|
67dae6 |
--
|
|
|
67dae6 |
2.21.0
|
|
|
67dae6 |
|