Merge "Only return the latest config for project-branch"
This commit is contained in:
commit
239a4b9142
@ -921,30 +921,23 @@ class TestMerger(ZuulTestCase):
|
||||
result = merger.mergeChanges([item_a, item_b], files=files, dirs=dirs)
|
||||
self.assertIsNotNone(result)
|
||||
hexsha, read_files, repo_state, ret_recent, orig_commit = result
|
||||
self.assertEqual(len(read_files), 2)
|
||||
self.assertEqual(len(read_files), 1)
|
||||
self.assertEqual(read_files[0]['project'], 'org/project')
|
||||
self.assertEqual(read_files[0]['branch'], 'master')
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/a.yaml'], 'a')
|
||||
self.assertEqual(read_files[1]['project'], 'org/project')
|
||||
self.assertEqual(read_files[1]['branch'], 'master')
|
||||
self.assertEqual(read_files[1]['files']['zuul.d/b.yaml'], 'b')
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/b.yaml'], 'b')
|
||||
|
||||
# Merge A -> B -> C
|
||||
result = merger.mergeChanges([item_a, item_b, item_c], files=files,
|
||||
dirs=dirs)
|
||||
self.assertIsNotNone(result)
|
||||
hexsha, read_files, repo_state, ret_recent, orig_commit = result
|
||||
self.assertEqual(len(read_files), 3)
|
||||
self.assertEqual(len(read_files), 1)
|
||||
self.assertEqual(read_files[0]['project'], 'org/project')
|
||||
self.assertEqual(read_files[0]['branch'], 'master')
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/a.yaml'], 'a')
|
||||
self.assertEqual(read_files[1]['project'], 'org/project')
|
||||
self.assertEqual(read_files[1]['branch'], 'master')
|
||||
self.assertEqual(read_files[1]['files']['zuul.d/b.yaml'], 'b')
|
||||
self.assertEqual(read_files[2]['project'], 'org/project')
|
||||
self.assertEqual(read_files[2]['branch'], 'master')
|
||||
self.assertEqual(read_files[2]['files']['zuul.d/a.yaml'],
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/a.yaml'],
|
||||
'a-with-c')
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/b.yaml'], 'b')
|
||||
|
||||
# Merge A -> B -> C -> D
|
||||
result = merger.mergeChanges([item_a, item_b, item_c, item_d],
|
||||
@ -952,20 +945,15 @@ class TestMerger(ZuulTestCase):
|
||||
self.assertIsNotNone(result)
|
||||
hexsha, read_files, repo_state, ret_recent, orig_commit = result
|
||||
|
||||
self.assertEqual(len(read_files), 4)
|
||||
self.assertEqual(len(read_files), 2)
|
||||
self.assertEqual(read_files[0]['project'], 'org/project')
|
||||
self.assertEqual(read_files[0]['branch'], 'master')
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/a.yaml'], 'a')
|
||||
self.assertEqual(read_files[1]['project'], 'org/project')
|
||||
self.assertEqual(read_files[1]['branch'], 'master')
|
||||
self.assertEqual(read_files[1]['files']['zuul.d/b.yaml'], 'b')
|
||||
self.assertEqual(read_files[2]['project'], 'org/project')
|
||||
self.assertEqual(read_files[2]['branch'], 'master')
|
||||
self.assertEqual(read_files[2]['files']['zuul.d/a.yaml'],
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/a.yaml'],
|
||||
'a-with-c')
|
||||
self.assertEqual(read_files[3]['project'], 'org/project1')
|
||||
self.assertEqual(read_files[3]['branch'], 'master')
|
||||
self.assertEqual(read_files[3]['files']['zuul.d/a.yaml'],
|
||||
self.assertEqual(read_files[0]['files']['zuul.d/b.yaml'], 'b')
|
||||
self.assertEqual(read_files[1]['project'], 'org/project1')
|
||||
self.assertEqual(read_files[1]['branch'], 'master')
|
||||
self.assertEqual(read_files[1]['files']['zuul.d/a.yaml'],
|
||||
'a-in-project1')
|
||||
|
||||
def test_merge_temp_refs(self):
|
||||
|
@ -24,6 +24,7 @@ import os
|
||||
import re
|
||||
import shutil
|
||||
import time
|
||||
from collections import OrderedDict
|
||||
from concurrent.futures.process import BrokenProcessPool
|
||||
|
||||
import git
|
||||
@ -1291,7 +1292,8 @@ class Merger(object):
|
||||
# connection+project+branch -> commit
|
||||
recent = {}
|
||||
commit = None
|
||||
read_files = []
|
||||
# tuple(connection, project, branch) -> dict(config state)
|
||||
read_files = OrderedDict()
|
||||
# connection -> project -> ref -> commit
|
||||
if repo_state is None:
|
||||
repo_state = {}
|
||||
@ -1328,12 +1330,16 @@ class Merger(object):
|
||||
if files or dirs:
|
||||
repo = self.getRepo(item['connection'], item['project'])
|
||||
repo_files = repo.getFiles(files, dirs, commit=commit)
|
||||
read_files.append(dict(
|
||||
key = item['connection'], item['project'], item['branch']
|
||||
read_files[key] = dict(
|
||||
connection=item['connection'],
|
||||
project=item['project'],
|
||||
branch=item['branch'],
|
||||
files=repo_files))
|
||||
return commit.hexsha, read_files, repo_state, recent, orig_commit
|
||||
files=repo_files)
|
||||
return (
|
||||
commit.hexsha, list(read_files.values()), repo_state, recent,
|
||||
orig_commit
|
||||
)
|
||||
|
||||
def setRepoState(self, connection_name, project_name, repo_state,
|
||||
zuul_event_id=None, process_worker=None):
|
||||
|
Loading…
Reference in New Issue
Block a user