diff --git a/test/test_git_update.py b/test/test_git_update.py new file mode 100644 index 00000000..7f1ca6ac --- /dev/null +++ b/test/test_git_update.py @@ -0,0 +1,133 @@ +import json + +from srcinfo import parse + +from aurweb.git.update import extract_arch_fields + +SRCINFO = """ +pkgbase = ponies +pkgdesc = Test parse +pkgver = 1.0.0 +pkgrel = 1 +url = https://example.com +arch = x86_64 +arch = aarch64 +arch = armv7h +license = GPL +depends = curl +depends = openssl +optdepends = unicorns: Extends ponies forehead with a horn +provides = horse +conflicts = horse +options = !strip +options = staticlibs +source = ponies.service +source = ponies.sysusers +source = ponies.tmpfiles +sha256sums = 9d8f9d73e5fa2b2877dde010c0d8ca6fbf47f03eb1f01b02f846026a949a0dcf +sha256sums = d005fcd009ec5404e1ec88246c31e664167f5551d6cabc35f68eb41750bfe590 +sha256sums = 64022e15565a609f449090f02d53ee90ef95cffec52ae14f99e4e2132b6cffe1 +source_x86_64 = filea +source_x86_64 = fileb +sha256sums_x86_64 = f486f8528292c067620e9d495f66b0af2ad55dd4dc2e9d35b11aa7dd656d487b +sha256sums_x86_64 = f486f8528292c067620e9d495f66b0af2ad55dd4dc2e9d35b11aa7dd656d487c +source_aarch64 = filex +sha256sums_aarch64 = 1f72deec0a9af5059e1350d7b5a5a93bc4d2fbef6eeaa363fda764eb9c472b7b +source_armv7h = filey +sha256sums_armv7h = 8229b4bbf43563d8b688d19a514fb0fa0a1ef0eadbd96233882a4b496fa4c8c8 +pkgname = ponies +""" + +EXPECTED = """ +{ + "packages": { + "ponies": {} + }, + "pkgbase": "ponies", + "pkgdesc": "Test parse", + "pkgver": "1.0.0", + "pkgrel": "1", + "url": "https://example.com", + "arch": [ + "x86_64", + "aarch64", + "armv7h" + ], + "license": [ + "GPL" + ], + "depends": [ + "curl", + "openssl" + ], + "optdepends": [ + "unicorns: Extends ponies forehead with a horn" + ], + "provides": [ + "horse" + ], + "conflicts": [ + "horse" + ], + "options": [ + "!strip", + "staticlibs" + ], + "source": [ + "ponies.service", + "ponies.sysusers", + "ponies.tmpfiles" + ], + "sha256sums": [ + "9d8f9d73e5fa2b2877dde010c0d8ca6fbf47f03eb1f01b02f846026a949a0dcf", + "d005fcd009ec5404e1ec88246c31e664167f5551d6cabc35f68eb41750bfe590", + "64022e15565a609f449090f02d53ee90ef95cffec52ae14f99e4e2132b6cffe1" + ], + "source_x86_64": [ + "filea", + "fileb" + ], + "sha256sums_x86_64": [ + "f486f8528292c067620e9d495f66b0af2ad55dd4dc2e9d35b11aa7dd656d487b", + "f486f8528292c067620e9d495f66b0af2ad55dd4dc2e9d35b11aa7dd656d487c" + ], + "source_aarch64": [ + "filex" + ], + "sha256sums_aarch64": [ + "1f72deec0a9af5059e1350d7b5a5a93bc4d2fbef6eeaa363fda764eb9c472b7b" + ], + "source_armv7h": [ + "filey" + ], + "sha256sums_armv7h": [ + "8229b4bbf43563d8b688d19a514fb0fa0a1ef0eadbd96233882a4b496fa4c8c8" + ] +} +""" + + +def test_srcinfo_parse(): + (info, error) = parse.parse_srcinfo(SRCINFO) + + assert not error + + # Check if parsing function returns what we expect + assert json.loads(EXPECTED) == info + + +def test_git_update_extract_arch_fields(): + (info, error) = parse.parse_srcinfo(SRCINFO) + + assert not error + + # check arrays + sources = extract_arch_fields(info, "source") + + # We expect 7 source files + assert len(sources) == 7 + + # First one should be our service file + assert sources[0]["value"] == "ponies.service" + + # add more...