File fix-git_pillar-merging-across-multiple-__env__-repos.patch of Package salt.23536

From f5c9527aeee190a66a908037770c80a75e911d8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
 <psuarezhernandez@suse.com>
Date: Tue, 6 Nov 2018 16:38:54 +0000
Subject: [PATCH] Fix git_pillar merging across multiple __env__
 repositories (bsc#1112874)

Resolve target branch when using __env__

Test git ext_pillar across multiple repos using __env__

Remove unicode references
---
 tests/integration/pillar/test_git_pillar.py | 55 +++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/tests/integration/pillar/test_git_pillar.py b/tests/integration/pillar/test_git_pillar.py
index c0362127f6..979dfebb94 100644
--- a/tests/integration/pillar/test_git_pillar.py
+++ b/tests/integration/pillar/test_git_pillar.py
@@ -1600,6 +1600,61 @@ class TestPygit2SSH(GitPillarSSHTestBase):
             },
         )
 
+
+@skipIf(NO_MOCK, NO_MOCK_REASON)
+@skipIf(_windows_or_mac(), "minion is windows or mac")
+@skip_if_not_root
+@skipIf(
+    not HAS_PYGIT2,
+    "pygit2 >= {} and libgit2 >= {} required".format(PYGIT2_MINVER, LIBGIT2_MINVER),
+)
+@skipIf(not HAS_NGINX, "nginx not present")
+@skipIf(not HAS_VIRTUALENV, "virtualenv not present")
+class TestPygit2HTTP(GitPillarHTTPTestBase):
+    """
+    Test git_pillar with pygit2 using SSH authentication
+    """
+
+    def test_single_source(self):
+        """
+        Test with git_pillar_includes enabled and using "__env__" as the branch
+        name for the configured repositories.
+        The "gitinfo" repository contains top.sls file with a local reference
+        and also referencing external "nowhere.foo" which is provided by "webinfo"
+        repository mounted as "nowhere".
+        """
+        ret = self.get_pillar(
+            """\
+            file_ignore_regex: []
+            file_ignore_glob: []
+            git_pillar_provider: pygit2
+            git_pillar_pubkey: {pubkey_nopass}
+            git_pillar_privkey: {privkey_nopass}
+            cachedir: {cachedir}
+            extension_modules: {extmods}
+            ext_pillar:
+              - git:
+                - __env__ {url_extra_repo}:
+                  - name: gitinfo
+                - __env__ {url}:
+                  - name: webinfo
+                  - mountpoint: nowhere
+            """
+        )
+        self.assertEqual(
+            ret,
+            {
+                "branch": "master",
+                "motd": "The force will be with you. Always.",
+                "mylist": ["master"],
+                "mydict": {
+                    "master": True,
+                    "nested_list": ["master"],
+                    "nested_dict": {"master": True},
+                },
+            },
+        )
+
     @slowTest
     def test_root_parameter(self):
         """
-- 
2.29.2


openSUSE Build Service is sponsored by