Merge pull request 'Fix the import of breeze and other packages' (#13) from add_export into main

Reviewed-on: https://gitea.opensuse.org/importers/git-importer/pulls/13
This commit is contained in:
coolo 2022-11-03 15:19:06 +01:00
commit 6b26f8ff96
11 changed files with 10195 additions and 51 deletions

View File

@ -1,5 +1,5 @@
all: all:
isort -rc . isort *.py lib/*py tests/*py
autoflake -r --in-place --remove-unused-variables . autoflake -r --in-place --remove-unused-variables .
black . black .

View File

@ -105,7 +105,9 @@ def main():
importer = Importer(URL_OBS, "openSUSE:Factory", args.package) importer = Importer(URL_OBS, "openSUSE:Factory", args.package)
importer.import_into_db() importer.import_into_db()
exporter = GitExporter(URL_OBS, "openSUSE:Factory", args.package, args.repodir, args.cachedir) exporter = GitExporter(
URL_OBS, "openSUSE:Factory", args.package, args.repodir, args.cachedir
)
exporter.set_gc_interval(args.gc) exporter.set_gc_interval(args.gc)
exporter.export_as_git() exporter.export_as_git()

View File

@ -184,6 +184,9 @@ class Git:
def branch_head(self, branch): def branch_head(self, branch):
return self.repo.references["refs/heads/" + branch].target return self.repo.references["refs/heads/" + branch].target
def set_branch_head(self, branch, commit):
self.repo.references["refs/heads/" + branch].set_target(commit)
def gc(self): def gc(self):
logging.info(f"Garbage recollect and repackage {self.path}") logging.info(f"Garbage recollect and repackage {self.path}")
subprocess.run( subprocess.run(

View File

@ -28,22 +28,6 @@ class GitExporter:
self.gc_interval = 200 self.gc_interval = 200
self.cachedir = cachedir self.cachedir = cachedir
def download(self, revision):
obs_files = self.obs.files(revision.project, revision.package, revision.srcmd5)
git_files = {
(f.name, f.stat().st_size, md5(f))
for f in self.git.path.iterdir()
if f.is_file() and f.name not in (".gitattributes")
}
# Overwrite ".gitattributes" with the
self.git.add_default_lfs_gitattributes(force=True)
# Download each file in OBS if it is not a binary (or large)
# file
for name in obs_files:
self.git.add(name)
def set_gc_interval(self, gc): def set_gc_interval(self, gc):
self.gc_interval = gc self.gc_interval = gc
@ -85,44 +69,58 @@ class GitExporter:
logging.debug(f"Committing {flat}") logging.debug(f"Committing {flat}")
self.commit_flat(flat, branch_state) self.commit_flat(flat, branch_state)
def commit_file(self, flat, file, size, md5):
# have such files been detected as text mimetype before?
is_text = self.proxy_sha256.is_text(file.name)
if not is_text and is_binary_or_large(file.name, size):
file_sha256 = self.proxy_sha256.get_or_put(
flat.commit.project,
flat.commit.package,
file.name,
flat.commit.expanded_srcmd5,
md5,
size,
)
self.git.add_lfs(file.name, file_sha256["sha256"], size)
else:
self.obs.download(
flat.commit.project,
flat.commit.package,
file.name,
flat.commit.expanded_srcmd5,
self.git.path,
self.cachedir,
file_md5=md5,
)
self.git.add(file)
def branch_fits_parent1(self, flat, branch_state):
if branch_state[flat.branch] is None:
# everything fits nothing
return True
return flat.parent1 == branch_state[flat.branch]
def commit_flat(self, flat, branch_state): def commit_flat(self, flat, branch_state):
parents = [] parents = []
self.git.checkout(flat.branch) self.git.checkout(flat.branch)
if flat.parent1:
if not self.branch_fits_parent1(flat, branch_state):
logging.info(f"Reset {flat.branch} onto {flat.parent1.short_string()}")
self.git.set_branch_head(flat.branch, flat.parent1.git_commit)
self.git.checkout(flat.branch)
parents.append(flat.parent1.git_commit)
if flat.parent2:
parents.append(flat.parent2.git_commit)
# Overwrite ".gitattributes" with the # Overwrite ".gitattributes" with the
self.git.add_default_lfs_gitattributes(force=True) self.git.add_default_lfs_gitattributes(force=True)
if flat.parent1:
parents.append(flat.parent1.git_commit)
if flat.parent2:
parents.append(flat.parent2.git_commit)
to_download, to_delete = flat.commit.calc_delta(branch_state[flat.branch]) to_download, to_delete = flat.commit.calc_delta(branch_state[flat.branch])
for file in to_delete: for file in to_delete:
self.git.remove(file) self.git.remove(file)
for file, size, md5 in to_download: for file, size, md5 in to_download:
# have such files been detected as text mimetype before? self.commit_file(flat, file, size, md5)
is_text = self.proxy_sha256.is_text(file.name)
if not is_text and is_binary_or_large(file.name, size):
file_sha256 = self.proxy_sha256.get_or_put(
flat.commit.project,
flat.commit.package,
file.name,
flat.commit.expanded_srcmd5,
md5,
size,
)
self.git.add_lfs(file.name, file_sha256["sha256"], size)
else:
self.obs.download(
flat.commit.project,
flat.commit.package,
file.name,
flat.commit.expanded_srcmd5,
self.git.path,
self.cachedir,
file_md5=md5,
)
self.git.add(file)
commit = self.git.commit( commit = self.git.commit(
f"OBS User {flat.commit.userid}", f"OBS User {flat.commit.userid}",

View File

@ -5,11 +5,10 @@ import time
import urllib.parse import urllib.parse
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
from urllib.error import HTTPError from urllib.error import HTTPError
from pathlib import Path
from lib.proxy_sha256 import md5
import osc.core import osc.core
from lib.proxy_sha256 import md5
from lib.request import Request from lib.request import Request
from lib.user import User from lib.user import User
@ -164,7 +163,7 @@ class OBS:
cachedir: str, cachedir: str,
file_md5: str, file_md5: str,
) -> None: ) -> None:
cached_file = self._path_from_md5(name, cachedir, file_md5) cached_file = self._path_from_md5(name, cachedir, file_md5)
if not self.in_cache(name, cachedir, file_md5): if not self.in_cache(name, cachedir, file_md5):
with (dirpath / name).open("wb") as f: with (dirpath / name).open("wb") as f:

View File

@ -40,7 +40,7 @@ class ProxySHA256:
self.texts = set(["_config", "_service"]) self.texts = set(["_config", "_service"])
self.hashes = dict() self.hashes = dict()
return return
logging.info("Retrieve all previously defined SHA256") logging.debug("Retrieve all previously defined SHA256")
response = requests.get(f"http://source.dyn.cloud.suse.de/package/{package}") response = requests.get(f"http://source.dyn.cloud.suse.de/package/{package}")
if response.status_code == 200: if response.status_code == 200:
json = response.json() json = response.json()

View File

@ -16,11 +16,11 @@ class TestExporter:
db = DB() db = DB()
with db.cursor() as cur: with db.cursor() as cur:
cur.execute( cur.execute(
"SELECT * from revisions where package=%s ORDER BY project,rev", "SELECT * from revisions where package=%s ORDER BY commit_time",
(self.package,), (self.package,),
) )
data = {"revisions": []} data = {"revisions": []}
for row in cur.fetchall(): for row in cur.fetchall():
data["revisions"].append(DBRevision(row).as_dict(db)) data["revisions"].append(DBRevision(db, row).as_dict())
yaml.dump(data, sys.stdout, default_flow_style=False) yaml.dump(data, sys.stdout, default_flow_style=False)

9756
tests/fixtures/breeze-data.yaml vendored Normal file

File diff suppressed because it is too large Load Diff

171
tests/fixtures/breeze-expected-list.yaml vendored Normal file
View File

@ -0,0 +1,171 @@
- factory c:openSUSE:Factory/breeze/43.0 p1:openSUSE:Factory/breeze/42.0 p2:KDE:Frameworks5/breeze/150.0
- devel c:KDE:Frameworks5/breeze/150.0 p1:KDE:Frameworks5/breeze/148.0
- factory c:openSUSE:Factory/breeze/42.0 p1:openSUSE:Factory/breeze/41.0 p2:KDE:Frameworks5/breeze/148.0
- devel c:KDE:Frameworks5/breeze/148.0 p1:KDE:Frameworks5/breeze/147.0
- devel c:KDE:Frameworks5/breeze/147.0 p1:KDE:Frameworks5/breeze/145.0
- factory c:openSUSE:Factory/breeze/41.0 p1:openSUSE:Factory/breeze/40.0 p2:KDE:Frameworks5/breeze/145.0
- devel c:KDE:Frameworks5/breeze/145.0 p1:KDE:Frameworks5/breeze/143.0
- factory c:openSUSE:Factory/breeze/40.0 p1:openSUSE:Factory/breeze/39.0 p2:KDE:Frameworks5/breeze/143.0
- devel c:KDE:Frameworks5/breeze/143.0 p1:KDE:Frameworks5/breeze/142.0
- devel c:KDE:Frameworks5/breeze/142.0 p1:KDE:Frameworks5/breeze/141.0
- devel c:KDE:Frameworks5/breeze/141.0 p1:KDE:Frameworks5/breeze/139.0
- factory c:openSUSE:Factory/breeze/39.0 p1:openSUSE:Factory/breeze/38.0 p2:KDE:Frameworks5/breeze/139.0
- devel c:KDE:Frameworks5/breeze/139.0 p1:KDE:Frameworks5/breeze/137.0
- factory c:openSUSE:Factory/breeze/38.0 p1:openSUSE:Factory/breeze/37.0 p2:KDE:Frameworks5/breeze/137.0
- devel c:KDE:Frameworks5/breeze/137.0 p1:KDE:Frameworks5/breeze/136.0
- devel c:KDE:Frameworks5/breeze/136.0 p1:KDE:Frameworks5/breeze/135.0
- devel c:KDE:Frameworks5/breeze/135.0 p1:KDE:Frameworks5/breeze/134.0
- devel c:KDE:Frameworks5/breeze/134.0 p1:KDE:Frameworks5/breeze/132.0
- factory c:openSUSE:Factory/breeze/37.0 p1:openSUSE:Factory/breeze/36.0 p2:KDE:Frameworks5/breeze/132.0
- devel c:KDE:Frameworks5/breeze/132.0 p1:KDE:Frameworks5/breeze/130.0
- factory c:openSUSE:Factory/breeze/36.0 p1:openSUSE:Factory/breeze/35.0 p2:KDE:Frameworks5/breeze/130.0
- devel c:KDE:Frameworks5/breeze/130.0 p1:KDE:Frameworks5/breeze/128.0
- factory c:openSUSE:Factory/breeze/35.0 p1:openSUSE:Factory/breeze/34.0 p2:KDE:Frameworks5/breeze/128.0
- devel c:KDE:Frameworks5/breeze/128.0 p1:KDE:Frameworks5/breeze/127.0
- devel c:KDE:Frameworks5/breeze/127.0 p1:KDE:Frameworks5/breeze/126.034
- devel c:KDE:Frameworks5/breeze/126.034 p1:KDE:Frameworks5/breeze/126.0
- devel c:KDE:Frameworks5/breeze/126.0 p1:KDE:Frameworks5/breeze/125.0
- devel c:KDE:Frameworks5/breeze/125.0 p1:KDE:Frameworks5/breeze/124.0
- devel c:KDE:Frameworks5/breeze/124.0 p1:KDE:Frameworks5/breeze/123.0
- devel c:KDE:Frameworks5/breeze/123.0 p1:KDE:Frameworks5/breeze/122.0
- devel c:KDE:Frameworks5/breeze/122.0 p1:KDE:Frameworks5/breeze/120.0
- factory c:openSUSE:Factory/breeze/34.0 p1:openSUSE:Factory/breeze/33.0 p2:KDE:Frameworks5:LTS/breeze/14.0
- devel c:KDE:Frameworks5:LTS/breeze/14.0 p1:KDE:Frameworks5:LTS/breeze/13.0
- devel c:KDE:Frameworks5:LTS/breeze/13.0 p1:KDE:Frameworks5:LTS/breeze/12.0
- devel c:KDE:Frameworks5:LTS/breeze/12.0 p1:KDE:Frameworks5:LTS/breeze/11.0
- factory c:openSUSE:Factory/breeze/33.0 p1:openSUSE:Factory/breeze/32.0 p2:KDE:Frameworks5:LTS/breeze/11.0
- devel c:KDE:Frameworks5:LTS/breeze/11.0 p1:KDE:Frameworks5:LTS/breeze/10.0
- devel c:KDE:Frameworks5:LTS/breeze/10.0 p1:KDE:Frameworks5:LTS/breeze/9.0
- devel c:KDE:Frameworks5:LTS/breeze/9.0 p1:KDE:Frameworks5:LTS/breeze/8.0
- devel c:KDE:Frameworks5:LTS/breeze/8.0 p1:KDE:Frameworks5:LTS/breeze/7.0
- devel c:KDE:Frameworks5:LTS/breeze/7.0 p1:KDE:Frameworks5:LTS/breeze/6.0
- devel c:KDE:Frameworks5:LTS/breeze/6.0 p1:KDE:Frameworks5:LTS/breeze/5.0
- devel c:KDE:Frameworks5:LTS/breeze/5.0 p1:KDE:Frameworks5:LTS/breeze/4.0
- devel c:KDE:Frameworks5:LTS/breeze/4.0 p1:KDE:Frameworks5:LTS/breeze/3.0
- devel c:KDE:Frameworks5:LTS/breeze/3.0 p1:KDE:Frameworks5:LTS/breeze/2.0
- devel c:KDE:Frameworks5:LTS/breeze/2.0 p1:KDE:Frameworks5:LTS/breeze/1.0
- devel c:KDE:Frameworks5:LTS/breeze/1.0 p1:openSUSE:Factory/breeze/32.0
- factory c:openSUSE:Factory/breeze/32.0 p1:openSUSE:Factory/breeze/31.0 p2:KDE:Frameworks5/breeze/120.0
- devel c:KDE:Frameworks5/breeze/120.0 p1:KDE:Frameworks5/breeze/117.0
- factory c:openSUSE:Factory/breeze/31.0 p1:openSUSE:Factory/breeze/30.0 p2:KDE:Frameworks5/breeze/117.0
- devel c:KDE:Frameworks5/breeze/117.0 p1:KDE:Frameworks5/breeze/116.0
- factory c:openSUSE:Factory/breeze/30.0 p1:openSUSE:Factory/breeze/29.0 p2:KDE:Frameworks5/breeze/116.0
- devel c:KDE:Frameworks5/breeze/116.0 p1:KDE:Frameworks5/breeze/115.0
- devel c:KDE:Frameworks5/breeze/115.0 p1:KDE:Frameworks5/breeze/113.0
- devel c:KDE:Frameworks5/breeze/113.0 p1:KDE:Frameworks5/breeze/112.0
- devel c:KDE:Frameworks5/breeze/112.0 p1:KDE:Frameworks5/breeze/111.0
- factory c:openSUSE:Factory/breeze/29.0 p1:openSUSE:Factory/breeze/28.0 p2:KDE:Frameworks5/breeze/111.0
- devel c:KDE:Frameworks5/breeze/111.0 p1:KDE:Frameworks5/breeze/110.0
- devel c:KDE:Frameworks5/breeze/110.0 p1:KDE:Frameworks5/breeze/109.0
- devel c:KDE:Frameworks5/breeze/109.0 p1:KDE:Frameworks5/breeze/108.0
- devel c:KDE:Frameworks5/breeze/108.0 p1:KDE:Frameworks5/breeze/107.0
- devel c:KDE:Frameworks5/breeze/107.0 p1:KDE:Frameworks5/breeze/105.0
- factory c:openSUSE:Factory/breeze/28.0 p1:openSUSE:Factory/breeze/27.0 p2:KDE:Frameworks5/breeze/105.0
- devel c:KDE:Frameworks5/breeze/105.0 p1:KDE:Frameworks5/breeze/103.0
- factory c:openSUSE:Factory/breeze/27.0 p1:openSUSE:Factory/breeze/26.0 p2:KDE:Frameworks5/breeze/103.0
- devel c:KDE:Frameworks5/breeze/103.0 p1:KDE:Frameworks5/breeze/100.0
- factory c:openSUSE:Factory/breeze/26.0 p1:openSUSE:Factory/breeze/25.0 p2:KDE:Frameworks5/breeze/100.0
- devel c:KDE:Frameworks5/breeze/100.0 p1:KDE:Frameworks5/breeze/99.0
- factory c:openSUSE:Factory/breeze/25.0 p1:openSUSE:Factory/breeze/24.0 p2:KDE:Frameworks5/breeze/99.0
- devel c:KDE:Frameworks5/breeze/99.0 p1:KDE:Frameworks5/breeze/98.0
- devel c:KDE:Frameworks5/breeze/98.0 p1:KDE:Frameworks5/breeze/97.0
- devel c:KDE:Frameworks5/breeze/97.0 p1:KDE:Frameworks5/breeze/95.0
- factory c:openSUSE:Factory/breeze/24.0 p1:openSUSE:Factory/breeze/23.0 p2:KDE:Frameworks5/breeze/95.0
- devel c:KDE:Frameworks5/breeze/95.0 p1:KDE:Frameworks5/breeze/93.0
- factory c:openSUSE:Factory/breeze/23.0 p1:openSUSE:Factory/breeze/22.0 p2:KDE:Frameworks5/breeze/93.0
- devel c:KDE:Frameworks5/breeze/93.0 p1:KDE:Frameworks5/breeze/91.0
- factory c:openSUSE:Factory/breeze/22.0 p1:openSUSE:Factory/breeze/21.0 p2:KDE:Frameworks5/breeze/91.0
- devel c:KDE:Frameworks5/breeze/91.0 p1:KDE:Frameworks5/breeze/88.0
- factory c:openSUSE:Factory/breeze/21.0 p1:openSUSE:Factory/breeze/20.0 p2:KDE:Frameworks5/breeze/88.0
- devel c:KDE:Frameworks5/breeze/88.0 p1:KDE:Frameworks5/breeze/87.0
- factory c:openSUSE:Factory/breeze/20.0 p1:openSUSE:Factory/breeze/19.0 p2:KDE:Frameworks5/breeze/87.0
- devel c:KDE:Frameworks5/breeze/87.0 p1:KDE:Frameworks5/breeze/86.0
- devel c:KDE:Frameworks5/breeze/86.0 p1:KDE:Frameworks5/breeze/85.0
- devel c:KDE:Frameworks5/breeze/85.0 p1:KDE:Frameworks5/breeze/84.0
- devel c:KDE:Frameworks5/breeze/84.0 p1:KDE:Frameworks5/breeze/83.0
- devel c:KDE:Frameworks5/breeze/83.0 p1:KDE:Frameworks5/breeze/82.0
- devel c:KDE:Frameworks5/breeze/82.0 p1:KDE:Frameworks5/breeze/81.0
- devel c:KDE:Frameworks5/breeze/81.0 p1:KDE:Frameworks5/breeze/80.0
- devel c:KDE:Frameworks5/breeze/80.0 p1:KDE:Frameworks5/breeze/79.0
- devel c:KDE:Frameworks5/breeze/79.0 p1:KDE:Frameworks5/breeze/78.0
- devel c:KDE:Frameworks5/breeze/78.0 p1:KDE:Frameworks5/breeze/76.0
- devel c:KDE:Frameworks5/breeze/76.0 p1:KDE:Frameworks5/breeze/75.0
- factory c:openSUSE:Factory/breeze/19.0 p1:openSUSE:Factory/breeze/18.0 p2:KDE:Frameworks5/breeze/75.0
- devel c:KDE:Frameworks5/breeze/75.0 p1:KDE:Frameworks5/breeze/74.0
- devel c:KDE:Frameworks5/breeze/74.0 p1:KDE:Frameworks5/breeze/73.0
- devel c:KDE:Frameworks5/breeze/73.0 p1:KDE:Frameworks5/breeze/71.0
- factory c:openSUSE:Factory/breeze/18.0 p1:openSUSE:Factory/breeze/17.0 p2:KDE:Frameworks5/breeze/71.0
- devel c:KDE:Frameworks5/breeze/71.0 p1:KDE:Frameworks5/breeze/70.0
- devel c:KDE:Frameworks5/breeze/70.0 p1:KDE:Frameworks5/breeze/69.0
- devel c:KDE:Frameworks5/breeze/69.0 p1:KDE:Frameworks5/breeze/68.0
- devel c:KDE:Frameworks5/breeze/68.0 p1:KDE:Frameworks5/breeze/67.0
- devel c:KDE:Frameworks5/breeze/67.0 p1:KDE:Frameworks5/breeze/65.0
- factory c:openSUSE:Factory/breeze/17.0 p1:openSUSE:Factory/breeze/16.0 p2:KDE:Frameworks5/breeze/65.0
- devel c:KDE:Frameworks5/breeze/65.0 p1:KDE:Frameworks5/breeze/64.0
- devel c:KDE:Frameworks5/breeze/64.0 p1:KDE:Frameworks5/breeze/62.0
- factory c:openSUSE:Factory/breeze/16.0 p1:openSUSE:Factory/breeze/15.0 p2:KDE:Frameworks5/breeze/62.0
- devel c:KDE:Frameworks5/breeze/62.0 p1:KDE:Frameworks5/breeze/61.0
- devel c:KDE:Frameworks5/breeze/61.0 p1:KDE:Frameworks5/breeze/60.0
- devel c:KDE:Frameworks5/breeze/60.0 p1:KDE:Frameworks5/breeze/59.0
- devel c:KDE:Frameworks5/breeze/59.0 p1:KDE:Frameworks5/breeze/58.0
- devel c:KDE:Frameworks5/breeze/58.0 p1:KDE:Frameworks5/breeze/57.0
- devel c:KDE:Frameworks5/breeze/57.0 p1:KDE:Frameworks5/breeze/55.0
- factory c:openSUSE:Factory/breeze/15.0 p1:openSUSE:Factory/breeze/14.0 p2:KDE:Frameworks5/breeze/55.0
- devel c:KDE:Frameworks5/breeze/55.0 p1:KDE:Frameworks5/breeze/53.0
- factory c:openSUSE:Factory/breeze/14.0 p1:openSUSE:Factory/breeze/13.0 p2:KDE:Frameworks5/breeze/53.0
- devel c:KDE:Frameworks5/breeze/53.0 p1:KDE:Frameworks5/breeze/51.0
- factory c:openSUSE:Factory/breeze/13.0 p1:openSUSE:Factory/breeze/12.0 p2:KDE:Frameworks5/breeze/51.0
- devel c:KDE:Frameworks5/breeze/51.0 p1:KDE:Frameworks5/breeze/50.0
- devel c:KDE:Frameworks5/breeze/50.0 p1:KDE:Frameworks5/breeze/49.0
- devel c:KDE:Frameworks5/breeze/49.0 p1:KDE:Frameworks5/breeze/48.0
- devel c:KDE:Frameworks5/breeze/48.0 p1:KDE:Frameworks5/breeze/47.0
- devel c:KDE:Frameworks5/breeze/47.0 p1:KDE:Frameworks5/breeze/46.0
- devel c:KDE:Frameworks5/breeze/46.0 p1:KDE:Frameworks5/breeze/45.0
- devel c:KDE:Frameworks5/breeze/45.0 p1:KDE:Frameworks5/breeze/44.0
- devel c:KDE:Frameworks5/breeze/44.0 p1:KDE:Frameworks5/breeze/43.0
- devel c:KDE:Frameworks5/breeze/43.0 p1:KDE:Frameworks5/breeze/41.0
- factory c:openSUSE:Factory/breeze/12.0 p1:openSUSE:Factory/breeze/11.0 p2:KDE:Frameworks5/breeze/41.0
- devel c:KDE:Frameworks5/breeze/41.0 p1:KDE:Frameworks5/breeze/40.0
- devel c:KDE:Frameworks5/breeze/40.0 p1:KDE:Frameworks5/breeze/39.0
- devel c:KDE:Frameworks5/breeze/39.0 p1:KDE:Frameworks5/breeze/38.0
- factory c:openSUSE:Factory/breeze/11.0 p1:openSUSE:Factory/breeze/10.0 p2:KDE:Frameworks5/breeze/38.0
- devel c:KDE:Frameworks5/breeze/38.0 p1:KDE:Frameworks5/breeze/36.0
- factory c:openSUSE:Factory/breeze/10.0 p1:openSUSE:Factory/breeze/9.0 p2:KDE:Frameworks5/breeze/36.0
- devel c:KDE:Frameworks5/breeze/36.0 p1:KDE:Frameworks5/breeze/35.0
- devel c:KDE:Frameworks5/breeze/35.0 p1:KDE:Frameworks5/breeze/33.0
- factory c:openSUSE:Factory/breeze/9.0 p1:openSUSE:Factory/breeze/8.0 p2:KDE:Frameworks5/breeze/33.0
- devel c:KDE:Frameworks5/breeze/33.0 p1:KDE:Frameworks5/breeze/32.0
- devel c:KDE:Frameworks5/breeze/32.0 p1:KDE:Frameworks5/breeze/31.0
- devel c:KDE:Frameworks5/breeze/31.0 p1:KDE:Frameworks5/breeze/30.0
- devel c:KDE:Frameworks5/breeze/30.0 p1:KDE:Frameworks5/breeze/28.0
- factory c:openSUSE:Factory/breeze/8.0 p1:openSUSE:Factory/breeze/7.0 p2:KDE:Frameworks5/breeze/28.0
- devel c:KDE:Frameworks5/breeze/28.0 p1:KDE:Frameworks5/breeze/27.0
- devel c:KDE:Frameworks5/breeze/27.0 p1:KDE:Frameworks5/breeze/25.0
- factory c:openSUSE:Factory/breeze/7.0 p1:openSUSE:Factory/breeze/6.0 p2:KDE:Frameworks5/breeze/25.0
- devel c:KDE:Frameworks5/breeze/25.0 p1:KDE:Frameworks5/breeze/24.0
- devel c:KDE:Frameworks5/breeze/24.0 p1:KDE:Frameworks5/breeze/22.0
- factory c:openSUSE:Factory/breeze/6.0 p1:openSUSE:Factory/breeze/5.0 p2:KDE:Frameworks5/breeze/22.0
- devel c:KDE:Frameworks5/breeze/22.0 p1:KDE:Frameworks5/breeze/21.0
- devel c:KDE:Frameworks5/breeze/21.0 p1:KDE:Frameworks5/breeze/20.0
- devel c:KDE:Frameworks5/breeze/20.0 p1:KDE:Frameworks5/breeze/19.0
- devel c:KDE:Frameworks5/breeze/19.0 p1:KDE:Frameworks5/breeze/18.0
- devel c:KDE:Frameworks5/breeze/18.0 p1:KDE:Frameworks5/breeze/17.0
- factory c:openSUSE:Factory/breeze/5.0 p1:openSUSE:Factory/breeze/4.0 p2:KDE:Frameworks5/breeze/17.0
- devel c:KDE:Frameworks5/breeze/17.0 p1:KDE:Frameworks5/breeze/16.0
- devel c:KDE:Frameworks5/breeze/16.0 p1:KDE:Frameworks5/breeze/15.0
- devel c:KDE:Frameworks5/breeze/15.0 p1:KDE:Frameworks5/breeze/14.0
- devel c:KDE:Frameworks5/breeze/14.0 p1:KDE:Frameworks5/breeze/13.0
- devel c:KDE:Frameworks5/breeze/13.0 p1:KDE:Frameworks5/breeze/12.0
- devel c:KDE:Frameworks5/breeze/12.0 p1:KDE:Frameworks5/breeze/11.0
- factory c:openSUSE:Factory/breeze/4.0 p1:openSUSE:Factory/breeze/2.0 p2:KDE:Frameworks5/breeze/11.0
- devel c:KDE:Frameworks5/breeze/11.0 p1:KDE:Frameworks5/breeze/10.0
- devel c:KDE:Frameworks5/breeze/10.0 p1:KDE:Frameworks5/breeze/9.0
- devel c:KDE:Frameworks5/breeze/9.0 p1:KDE:Frameworks5/breeze/8.0
- devel c:KDE:Frameworks5/breeze/8.0 p1:KDE:Frameworks5/breeze/6.0
- factory c:openSUSE:Factory/breeze/2.0 p1:openSUSE:Factory/breeze/1.0 p2:KDE:Frameworks5/breeze/6.0
- devel c:KDE:Frameworks5/breeze/6.0 p1:openSUSE:Factory/breeze/1.0
- factory c:openSUSE:Factory/breeze/1.0 p1:KDE:Frameworks5/breeze/4.0
- factory c:KDE:Frameworks5/breeze/4.0 p1:KDE:Frameworks5/breeze/3.0
- factory c:KDE:Frameworks5/breeze/3.0 p1:KDE:Frameworks5/breeze/2.0
- factory c:KDE:Frameworks5/breeze/2.0 p1:KDE:Frameworks5/breeze/1.0
- factory c:KDE:Frameworks5/breeze/1.0

212
tests/fixtures/breeze-expected-tree.yaml vendored Normal file
View File

@ -0,0 +1,212 @@
- commit: openSUSE:Factory/breeze/43.0
merged:
- KDE:Frameworks5/breeze/150.0
- commit: openSUSE:Factory/breeze/42.0
merged:
- KDE:Frameworks5/breeze/148.0
- KDE:Frameworks5/breeze/147.0
- commit: openSUSE:Factory/breeze/41.0
merged:
- KDE:Frameworks5/breeze/145.0
- commit: openSUSE:Factory/breeze/40.0
merged:
- KDE:Frameworks5/breeze/143.0
- KDE:Frameworks5/breeze/142.0
- KDE:Frameworks5/breeze/141.0
- commit: openSUSE:Factory/breeze/39.0
merged:
- KDE:Frameworks5/breeze/139.0
- commit: openSUSE:Factory/breeze/38.0
merged:
- KDE:Frameworks5/breeze/137.0
- KDE:Frameworks5/breeze/136.0
- KDE:Frameworks5/breeze/135.0
- KDE:Frameworks5/breeze/134.0
- commit: openSUSE:Factory/breeze/37.0
merged:
- KDE:Frameworks5/breeze/132.0
- commit: openSUSE:Factory/breeze/36.0
merged:
- KDE:Frameworks5/breeze/130.0
- commit: openSUSE:Factory/breeze/35.0
merged:
- KDE:Frameworks5/breeze/128.0
- KDE:Frameworks5/breeze/127.0
- KDE:Frameworks5/breeze/126.034
- KDE:Frameworks5/breeze/126.0
- KDE:Frameworks5/breeze/125.0
- KDE:Frameworks5/breeze/124.0
- KDE:Frameworks5/breeze/123.0
- KDE:Frameworks5/breeze/122.0
- commit: openSUSE:Factory/breeze/34.0
merged:
- KDE:Frameworks5:LTS/breeze/14.0
- KDE:Frameworks5:LTS/breeze/13.0
- KDE:Frameworks5:LTS/breeze/12.0
- commit: openSUSE:Factory/breeze/33.0
merged:
- KDE:Frameworks5:LTS/breeze/11.0
- KDE:Frameworks5:LTS/breeze/10.0
- KDE:Frameworks5:LTS/breeze/9.0
- KDE:Frameworks5:LTS/breeze/8.0
- KDE:Frameworks5:LTS/breeze/7.0
- KDE:Frameworks5:LTS/breeze/6.0
- KDE:Frameworks5:LTS/breeze/5.0
- KDE:Frameworks5:LTS/breeze/4.0
- KDE:Frameworks5:LTS/breeze/3.0
- KDE:Frameworks5:LTS/breeze/2.0
- KDE:Frameworks5:LTS/breeze/1.0
- commit: openSUSE:Factory/breeze/32.0
merged:
- KDE:Frameworks5/breeze/120.0
- commit: openSUSE:Factory/breeze/31.0
merged:
- KDE:Frameworks5/breeze/117.0
- commit: openSUSE:Factory/breeze/30.0
merged:
- KDE:Frameworks5/breeze/116.0
- KDE:Frameworks5/breeze/115.0
- KDE:Frameworks5/breeze/113.0
- KDE:Frameworks5/breeze/112.0
- commit: openSUSE:Factory/breeze/29.0
merged:
- KDE:Frameworks5/breeze/111.0
- KDE:Frameworks5/breeze/110.0
- KDE:Frameworks5/breeze/109.0
- KDE:Frameworks5/breeze/108.0
- KDE:Frameworks5/breeze/107.0
- commit: openSUSE:Factory/breeze/28.0
merged:
- KDE:Frameworks5/breeze/105.0
- commit: openSUSE:Factory/breeze/27.0
merged:
- KDE:Frameworks5/breeze/103.0
- commit: openSUSE:Factory/breeze/26.0
merged:
- KDE:Frameworks5/breeze/100.0
- commit: openSUSE:Factory/breeze/25.0
merged:
- KDE:Frameworks5/breeze/99.0
- KDE:Frameworks5/breeze/98.0
- KDE:Frameworks5/breeze/97.0
- commit: openSUSE:Factory/breeze/24.0
merged:
- KDE:Frameworks5/breeze/95.0
- commit: openSUSE:Factory/breeze/23.0
merged:
- KDE:Frameworks5/breeze/93.0
- commit: openSUSE:Factory/breeze/22.0
merged:
- KDE:Frameworks5/breeze/91.0
- commit: openSUSE:Factory/breeze/21.0
merged:
- KDE:Frameworks5/breeze/88.0
- commit: openSUSE:Factory/breeze/20.0
merged:
- KDE:Frameworks5/breeze/87.0
- KDE:Frameworks5/breeze/86.0
- KDE:Frameworks5/breeze/85.0
- KDE:Frameworks5/breeze/84.0
- KDE:Frameworks5/breeze/83.0
- KDE:Frameworks5/breeze/82.0
- KDE:Frameworks5/breeze/81.0
- KDE:Frameworks5/breeze/80.0
- KDE:Frameworks5/breeze/79.0
- KDE:Frameworks5/breeze/78.0
- KDE:Frameworks5/breeze/76.0
- commit: openSUSE:Factory/breeze/19.0
merged:
- KDE:Frameworks5/breeze/75.0
- KDE:Frameworks5/breeze/74.0
- KDE:Frameworks5/breeze/73.0
- commit: openSUSE:Factory/breeze/18.0
merged:
- KDE:Frameworks5/breeze/71.0
- KDE:Frameworks5/breeze/70.0
- KDE:Frameworks5/breeze/69.0
- KDE:Frameworks5/breeze/68.0
- KDE:Frameworks5/breeze/67.0
- commit: openSUSE:Factory/breeze/17.0
merged:
- KDE:Frameworks5/breeze/65.0
- KDE:Frameworks5/breeze/64.0
- commit: openSUSE:Factory/breeze/16.0
merged:
- KDE:Frameworks5/breeze/62.0
- KDE:Frameworks5/breeze/61.0
- KDE:Frameworks5/breeze/60.0
- KDE:Frameworks5/breeze/59.0
- KDE:Frameworks5/breeze/58.0
- KDE:Frameworks5/breeze/57.0
- commit: openSUSE:Factory/breeze/15.0
merged:
- KDE:Frameworks5/breeze/55.0
- commit: openSUSE:Factory/breeze/14.0
merged:
- KDE:Frameworks5/breeze/53.0
- commit: openSUSE:Factory/breeze/13.0
merged:
- KDE:Frameworks5/breeze/51.0
- KDE:Frameworks5/breeze/50.0
- KDE:Frameworks5/breeze/49.0
- KDE:Frameworks5/breeze/48.0
- KDE:Frameworks5/breeze/47.0
- KDE:Frameworks5/breeze/46.0
- KDE:Frameworks5/breeze/45.0
- KDE:Frameworks5/breeze/44.0
- KDE:Frameworks5/breeze/43.0
- commit: openSUSE:Factory/breeze/12.0
merged:
- KDE:Frameworks5/breeze/41.0
- KDE:Frameworks5/breeze/40.0
- KDE:Frameworks5/breeze/39.0
- commit: openSUSE:Factory/breeze/11.0
merged:
- KDE:Frameworks5/breeze/38.0
- commit: openSUSE:Factory/breeze/10.0
merged:
- KDE:Frameworks5/breeze/36.0
- KDE:Frameworks5/breeze/35.0
- commit: openSUSE:Factory/breeze/9.0
merged:
- KDE:Frameworks5/breeze/33.0
- KDE:Frameworks5/breeze/32.0
- KDE:Frameworks5/breeze/31.0
- KDE:Frameworks5/breeze/30.0
- commit: openSUSE:Factory/breeze/8.0
merged:
- KDE:Frameworks5/breeze/28.0
- KDE:Frameworks5/breeze/27.0
- commit: openSUSE:Factory/breeze/7.0
merged:
- KDE:Frameworks5/breeze/25.0
- KDE:Frameworks5/breeze/24.0
- commit: openSUSE:Factory/breeze/6.0
merged:
- KDE:Frameworks5/breeze/22.0
- KDE:Frameworks5/breeze/21.0
- KDE:Frameworks5/breeze/20.0
- KDE:Frameworks5/breeze/19.0
- KDE:Frameworks5/breeze/18.0
- commit: openSUSE:Factory/breeze/5.0
merged:
- KDE:Frameworks5/breeze/17.0
- KDE:Frameworks5/breeze/16.0
- KDE:Frameworks5/breeze/15.0
- KDE:Frameworks5/breeze/14.0
- KDE:Frameworks5/breeze/13.0
- KDE:Frameworks5/breeze/12.0
- commit: openSUSE:Factory/breeze/4.0
merged:
- KDE:Frameworks5/breeze/11.0
- KDE:Frameworks5/breeze/10.0
- KDE:Frameworks5/breeze/9.0
- KDE:Frameworks5/breeze/8.0
- commit: openSUSE:Factory/breeze/2.0
merged:
- KDE:Frameworks5/breeze/6.0
- commit: openSUSE:Factory/breeze/1.0
- commit: KDE:Frameworks5/breeze/4.0
- commit: KDE:Frameworks5/breeze/3.0
- commit: KDE:Frameworks5/breeze/2.0
- commit: KDE:Frameworks5/breeze/1.0

View File

@ -65,6 +65,9 @@ class TestTreeMethods(unittest.TestCase):
def test_000update_repos_tree(self): def test_000update_repos_tree(self):
self.verify_package("000update-repos") self.verify_package("000update-repos")
def test_breeze_tree(self):
self.verify_package("breeze")
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()