]> git.proxmox.com Git - pmg-api.git/blob - src/tests/test_sa_channel_parser.pl
pmgcm: add trigger-update-fingerprint
[pmg-api.git] / src / tests / test_sa_channel_parser.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use Test::More;
6
7 use PMG::Utils;
8
9 my $kam_key = qq{-----BEGIN PGP PUBLIC KEY BLOCK-----
10
11 mQINBF96bE0BEADsT1xRD2l19kmUSg9XMfRUtJbMGa9YAQ0a2fayT9IdmR38J4o3
12 Ln2fIR0CMa81Q+mi7pSdTpHGqR3t5GjmDGcCN8kwoHbmm0t5F9gK0tFAXThf+e40
13 kMdzLNzled4+5D83VyKCNaPm1tmogzYKKIEzTHCqQ7TdahWZDRDFiZJWFkd/9miE
14 kURY2uWLCttF+4Aa2AOHUg/7q00NSR8S0jWpLzpVNjbgi/jjkCafhpSZ56aqXHk3
15 QrTwJj3sznrLb9TkVZoXFKbBCh15m7mf5VVJVEZpj3BsvbcZJPnBFkCrzPjfShRz
16 lttRyiCFflOIcDrClg62tA/a1BmdUuIB5ktdCX8gB0F4t+9MhqgF89vT/OQpxywv
17 /QmuvKZzl77TQcLFHDlS+TKjLI6RdM3xuto1B8aSIYpKslnVpYuMpxNsvouAiQig
18 5qKBzYMbFCVge8Kjvcs6znxsPyjkCWgZVbf7ev7v+h71kkVfJ2TRR52ty/vsh82c
19 LYEaIB8CKYTstf69EOEQEhqMVNfhzuEb22ueYtAQSsnpLgGii0PwAFfSB4puzEUI
20 ItJVmD4DviD7ZfZnT8dR2bsysV4BF8s2dKX0KDnBAkzhlc30/iwt8j8bZXx3Evau
21 Ci+sFvBRMbpJJbVH8AJT7/dImn1ZqbK7jaZkFMticGBBWaKee8NYmF+KKwARAQAB
22 tDdLZXZpbiBBLiBNY0dyYWlsIChLQU0gQ2hhbm5lbCkgPGthbWNoYW5uZWxAbWNn
23 cmFpbC5jb20+iQJOBBMBCAA4FiEEIdlxQicskGb8qnkrShVtpSTAY9gFAl96bE0C
24 GwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQShVtpSTAY9hQZRAA5i8RkBCH
25 zjY/xHAoIUa4u9Di52I8t8IKHuIbH5a1TfShT8uj38ucmc/gRWMoOu1Tef9G2DdJ
26 FQc7KOA9GcGyGl1C2gfoTJEqBSNJTgJVfmHQ1Ef0ucNSjYFD3H0eFGTIuoSFy3Mi
27 g7CzxfhIJXIn4JW9sNwICH/7pOLke5Ihd5WvyOqU13FrfGemRbilviG73HYoy+Fh
28 4R9A1MLF3I0zVG5nszfn5CjSVG3c+Buj7Gk1d67noINbhCs2IPnyuOSvfrZc5wx1
29 ImCS8BpmGjXqaXZAIWLIhpMXvRiboGxX1zzRZLoz7Y5Y5h1MfnY2ASDMddmJpgOv
30 Vey/acAB4+6TtCgXmA6Wy8xmsqlId4qBocxX/jCMJ8OsuueYE6eF2jzS/JfbTndA
31 7pHOnCoR+ndMra5vaX8MYyGKqxxWyBoKWGgeBs8fSMwHAqRIo9GHWK67nBX0x39U
32 x9G0yn/A2dhaGqhui8xrcAHg/OGJErOlDw7YBeVX0RiS6awPyk9fo0IsGN0po2VX
33 bd9H8DKz1CXBLNZRG0vn5mViSOBzZeGU+K9aAs58GZ46LKA3YfWJ4s5W8BS+J3Ia
34 TFpq8U+OO/BSmOkMHZ+OPKWSlxNitFTyQsIdtS1PfqqYc+MK312LdmvrG2KWXE3N
35 EnuBffLm6uSOHJA6/0r6THJkffDSuvqM5yU=
36 =GVCC
37 -----END PGP PUBLIC KEY BLOCK-----};
38
39 my $tests = [
40 [
41 './KAM_channel.conf', # input filename
42 { # result structure
43 filename => './KAM_channel.conf',
44 channelurl => 'kam.sa-channels.mcgrail.com',
45 keyid => '24C063D8',
46 gpgkey => $kam_key,
47 },
48 undef, # error string
49 ],
50 [
51 './missing_gpg_key_channel.conf',
52 undef,
53 'no GPG public key in ./missing_gpg_key_channel.conf!',
54 ],
55 [
56 './missing_keyid.conf',
57 undef,
58 'no KEYID in ./missing_keyid.conf!',
59 ],
60 ];
61
62 foreach my $test (@$tests) {
63 my ($filename, $expect, $error) = @$test;
64
65 my $result = eval { PMG::Utils::read_sa_channel($filename); };
66 my $err = $@;
67
68 if ($error) {
69 like($err, qr/^\Q$error\E/, "expected error for $filename: $error");
70 } else {
71 is_deeply($result, $expect, "channel file: $filename parsed correctly");
72 }
73 }
74
75 done_testing();