diff --git a/test/test_calm.py b/test/test_calm.py index 2c8a748..a61a644 100755 --- a/test/test_calm.py +++ b/test/test_calm.py @@ -408,6 +408,41 @@ def test_process_uploads_conflict(self): compare_with_expected_file(self, 'testdata/conflict', dirlist, d) shutil.rmtree(getattr(args, d)) + def test_process_upload_no_auth(self): + self.maxDiff = None + + args = types.SimpleNamespace() + + for d in ARGDIRS: + setattr(args, d, tempfile.mktemp()) + logging.info('%s = %s', d, getattr(args, d)) + + shutil.copytree('testdata/relarea', args.rel_area) + shutil.copytree('testdata/homes.no_auth', args.homedir) + os.mkdir(args.stagingdir) + + args.dryrun = False + args.email = None + args.force = False + args.pkglist = 'testdata/pkglist/cygwin-pkg-maint' + args.stale = True + args.trustedmaint = '' + + # set appropriate !ready + m_homedir = os.path.join(args.homedir, 'Blooey McFooey') + os.system('touch "%s"' % (os.path.join(m_homedir, 'x86_64', 'release', 'testpackage', '!ready'))) + + state = calm.calm.CalmState() + state.packages = calm.calm.process_relarea(args, state) + state.packages = calm.calm.process_uploads(args, state) + self.assertTrue(state.packages) + + for d in ARGDIRS: + with self.subTest(directory=d): + dirlist = capture_dirtree(getattr(args, d)) + compare_with_expected_file(self, 'testdata/upload_bad_auth', dirlist, d) + shutil.rmtree(getattr(args, d)) + def test_process(self): self.maxDiff = None diff --git a/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1-src.hint b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1-src.hint new file mode 100644 index 0000000..07e6025 --- /dev/null +++ b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1-src.hint @@ -0,0 +1,5 @@ +sdesc: "The UNIX emulation engine" +ldesc: "A fraudulent package" +category: Base +homepage: https://cygwin.com + diff --git a/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1-src.tar.xz b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1-src.tar.xz new file mode 100644 index 0000000..0e6f1e8 Binary files /dev/null and b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1-src.tar.xz differ diff --git a/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1.hint b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1.hint new file mode 100644 index 0000000..9365ed8 --- /dev/null +++ b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1.hint @@ -0,0 +1,4 @@ +sdesc: "The UNIX emulation engine" +ldesc: "A fraudulent packagee" +category: Base +requires: base-cygwin _windows ( >= 6.0 ) diff --git a/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1.tar.xz b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1.tar.xz new file mode 100644 index 0000000..0e6f1e8 Binary files /dev/null and b/test/testdata/homes.no_auth/Blooey McFooey/x86_64/release/testpackage/cygwin/cygwin-3.0.0-1.tar.xz differ diff --git a/test/testdata/upload_bad_auth/homedir.expected b/test/testdata/upload_bad_auth/homedir.expected new file mode 100644 index 0000000..7d4a92b --- /dev/null +++ b/test/testdata/upload_bad_auth/homedir.expected @@ -0,0 +1,9 @@ +{'.': [], + 'Blooey McFooey': [], + 'Blooey McFooey/x86_64': [], + 'Blooey McFooey/x86_64/release': [], + 'Blooey McFooey/x86_64/release/testpackage': [], + 'Blooey McFooey/x86_64/release/testpackage/cygwin': ['cygwin-3.0.0-1-src.hint', + 'cygwin-3.0.0-1-src.tar.xz', + 'cygwin-3.0.0-1.hint', + 'cygwin-3.0.0-1.tar.xz']} diff --git a/test/testdata/upload_bad_auth/htdocs.expected b/test/testdata/upload_bad_auth/htdocs.expected new file mode 100644 index 0000000..6d3735d --- /dev/null +++ b/test/testdata/upload_bad_auth/htdocs.expected @@ -0,0 +1 @@ +{'.': ['calm.db']} diff --git a/test/testdata/upload_bad_auth/rel_area.expected b/test/testdata/upload_bad_auth/rel_area.expected new file mode 100644 index 0000000..ce4225b --- /dev/null +++ b/test/testdata/upload_bad_auth/rel_area.expected @@ -0,0 +1,182 @@ +{'.': [], + 'noarch': ['sha512.sum'], + 'noarch/release': ['sha512.sum'], + 'noarch/release/obs-a': ['obs-a-1.0-1-src.hint', + 'obs-a-1.0-1-src.tar.xz', + 'obs-a-1.0-1.hint', + 'obs-a-1.0-1.tar.xz', + 'sha512.sum'], + 'noarch/release/obs-b': ['obs-b-1.0-1-src.hint', + 'obs-b-1.0-1-src.tar.xz', + 'obs-b-1.0-1.hint', + 'obs-b-1.0-1.tar.xz', + 'sha512.sum'], + 'noarch/release/perl-Net-SMTP-SSL': ['perl-Net-SMTP-SSL-1.01-1-src.hint', + 'perl-Net-SMTP-SSL-1.01-1-src.tar.xz', + 'perl-Net-SMTP-SSL-1.01-1.hint', + 'perl-Net-SMTP-SSL-1.01-1.tar.xz', + 'perl-Net-SMTP-SSL-1.02-1-src.hint', + 'perl-Net-SMTP-SSL-1.02-1-src.tar.xz', + 'perl-Net-SMTP-SSL-1.02-1.hint', + 'perl-Net-SMTP-SSL-1.02-1.tar.xz', + 'perl-Net-SMTP-SSL-1.03-1-src.hint', + 'perl-Net-SMTP-SSL-1.03-1-src.tar.xz', + 'perl-Net-SMTP-SSL-1.03-1.hint', + 'perl-Net-SMTP-SSL-1.03-1.tar.xz', + 'sha512.sum'], + 'noarch/release/test-c': ['sha512.sum', + 'test-c-1.0-1-src.hint', + 'test-c-1.0-1-src.tar.xz', + 'test-c-1.0-1.hint', + 'test-c-1.0-1.tar.xz'], + 'noarch/release/test-d': ['sha512.sum', + 'test-d-1.0-1-src.hint', + 'test-d-1.0-1-src.tar.xz', + 'test-d-1.0-1.hint', + 'test-d-1.0-1.tar.xz'], + 'noarch/release/test-e': ['sha512.sum', + 'test-e-1.0-1-src.hint', + 'test-e-1.0-1-src.tar.xz', + 'test-e-1.0-1.hint', + 'test-e-1.0-1.tar.xz'], + 'x86_64': ['sha512.sum'], + 'x86_64/release': ['sha512.sum'], + 'x86_64/release/arc': ['arc-4.32.7-10-src.hint', + 'arc-4.32.7-10-src.tar.bz2', + 'arc-4.32.7-10.hint', + 'arc-4.32.7-10.tar.bz2'], + 'x86_64/release/base-cygwin': ['base-cygwin-3.6-1.hint', + 'base-cygwin-3.6-1.tar.xz', + 'base-cygwin-3.8-1.hint', + 'base-cygwin-3.8-1.tar.xz', + 'sha512.sum'], + 'x86_64/release/corrupt': ['corrupt-2.0.0-1-src.hint', + 'corrupt-2.0.0-1-src.tar.xz', + 'corrupt-2.0.0-1.hint', + 'corrupt-2.0.0-1.tar.xz', + 'sha512.sum'], + 'x86_64/release/cygwin': ['.this-should-be-ignored', + 'cygwin-2.2.0-1-src.hint', + 'cygwin-2.2.0-1-src.tar.xz', + 'cygwin-2.2.0-1.hint', + 'cygwin-2.2.0-1.tar.xz', + 'cygwin-2.2.1-1-src.hint', + 'cygwin-2.2.1-1-src.tar.xz', + 'cygwin-2.2.1-1.hint', + 'cygwin-2.2.1-1.tar.xz', + 'cygwin-2.3.0-0.3-src.hint', + 'cygwin-2.3.0-0.3-src.tar.xz', + 'cygwin-2.3.0-0.3.hint', + 'cygwin-2.3.0-0.3.tar.xz', + 'override.hint', + 'sha512.sum'], + 'x86_64/release/cygwin/cygwin-debuginfo': ['cygwin-debuginfo-2.2.0-1.hint', + 'cygwin-debuginfo-2.2.0-1.tar.xz', + 'cygwin-debuginfo-2.2.1-1.hint', + 'cygwin-debuginfo-2.2.1-1.tar.xz', + 'cygwin-debuginfo-2.3.0-0.3.hint', + 'cygwin-debuginfo-2.3.0-0.3.tar.xz', + 'override.hint', + 'sha512.sum'], + 'x86_64/release/cygwin/cygwin-devel': ['cygwin-devel-2.2.0-1.hint', + 'cygwin-devel-2.2.0-1.tar.xz', + 'cygwin-devel-2.2.1-1.hint', + 'cygwin-devel-2.2.1-1.tar.xz', + 'cygwin-devel-2.3.0-0.3.hint', + 'cygwin-devel-2.3.0-0.3.tar.xz', + 'override.hint', + 'sha512.sum'], + 'x86_64/release/invalid': ['invalid-0.hint', 'sha512.sum'], + 'x86_64/release/keychain': ['keychain-2.6.8-1-src.hint', + 'keychain-2.6.8-1-src.tar.bz2', + 'keychain-2.6.8-1.hint', + 'keychain-2.6.8-1.tar.bz2', + 'keychain-2.7.1-1-src.hint', + 'keychain-2.7.1-1-src.tar.bz2', + 'keychain-2.7.1-1.hint', + 'keychain-2.7.1-1.tar.bz2', + 'sha512.sum'], + 'x86_64/release/libspiro': ['libspiro-20071029-1.hint', 'sha512.sum'], + 'x86_64/release/libspiro/libspiro-devel': ['libspiro-devel-20071029-1.hint', 'sha512.sum'], + 'x86_64/release/libspiro/libspiro0': ['libspiro0-20071029-1.hint', 'sha512.sum'], + 'x86_64/release/libtextcat': ['libtextcat-2.2-2-src.hint', + 'libtextcat-2.2-2-src.tar.bz2', + 'libtextcat-2.2-2.hint', + 'libtextcat-2.2-2.tar.bz2', + 'sha512.sum'], + 'x86_64/release/libtextcat/libtextcat-devel': ['libtextcat-devel-2.2-2.hint', + 'libtextcat-devel-2.2-2.tar.bz2', + 'sha512.sum'], + 'x86_64/release/libtextcat/libtextcat0': ['libtextcat0-2.2-2.hint', 'libtextcat0-2.2-2.tar.bz2', 'sha512.sum'], + 'x86_64/release/mDNSResponder': ['mDNSResponder-379.32.1-1-src.hint', + 'mDNSResponder-379.32.1-1-src.tar.bz2', + 'mDNSResponder-379.32.1-1.hint', + 'mDNSResponder-379.32.1-1.tar.bz2', + 'sha512.sum'], + 'x86_64/release/mDNSResponder/libdns_sd-devel': ['libdns_sd-devel-379.32.1-1.hint', + 'libdns_sd-devel-379.32.1-1.tar.bz2', + 'sha512.sum'], + 'x86_64/release/mDNSResponder/libdns_sd1': ['libdns_sd1-379.32.1-1.hint', + 'libdns_sd1-379.32.1-1.tar.bz2', + 'sha512.sum'], + 'x86_64/release/mingw64-i686-binutils': ['mingw64-i686-binutils-2.29.1.787c9873-1.hint', 'sha512.sum'], + 'x86_64/release/mingw64-i686-binutils/mingw64-i686-binutils-debuginfo': ['mingw64-i686-binutils-debuginfo-2.29.1.787c9873-1.hint', + 'sha512.sum'], + 'x86_64/release/openssh': ['openssh-7.2p2-1-src.hint', + 'openssh-7.2p2-1-src.tar.xz', + 'openssh-7.2p2-1.hint', + 'openssh-7.2p2-1.tar.xz', + 'sha512.sum'], + 'x86_64/release/per-version': ['override.hint', + 'per-version-4.0-1-src.hint', + 'per-version-4.0-1-src.tar.xz', + 'per-version-4.0-1.hint', + 'per-version-4.0-1.tar.xz', + 'per-version-4.8-1-src.hint', + 'per-version-4.8-1-src.tar.xz', + 'per-version-4.8-1.hint', + 'per-version-4.8-1.tar.xz', + 'sha512.sum'], + 'x86_64/release/per-version-incomplete': ['override.hint', + 'per-version-incomplete-36-1-src.hint', + 'per-version-incomplete-36-1-src.tar.xz', + 'per-version-incomplete-36-1.hint', + 'per-version-incomplete-36-1.tar.xz', + 'per-version-incomplete-39-1-src.tar.xz', + 'per-version-incomplete-39-1.tar.xz', + 'sha512.sum'], + 'x86_64/release/per-version-replacement-hint-only': ['per-version-replacement-hint-only-1.0-1-src.hint', + 'per-version-replacement-hint-only-1.0-1-src.tar.xz', + 'per-version-replacement-hint-only-1.0-1.hint', + 'per-version-replacement-hint-only-1.0-1.tar.xz', + 'sha512.sum'], + 'x86_64/release/proj': ['proj-4.8.0-1.hint', 'sha512.sum'], + 'x86_64/release/proj/libproj-devel': ['libproj-devel-4.8.0-1.hint', 'sha512.sum'], + 'x86_64/release/proj/libproj1': ['libproj1-4.8.0-1.hint', 'sha512.sum'], + 'x86_64/release/rpm-doc': ['rpm-doc-4.1-2-src.hint', + 'rpm-doc-4.1-2-src.tar.bz2', + 'rpm-doc-4.1-2.hint', + 'rpm-doc-4.1-2.tar.bz2', + 'rpm-doc-999-1.hint', + 'rpm-doc-999-1.tar.bz2', + 'sha512.sum'], + 'x86_64/release/splint': ['sha512.sum', 'splint-3.1.2-1.hint'], + 'x86_64/release/staleversion': ['override.hint', + 'sha512.sum', + 'staleversion-243-0-src.hint', + 'staleversion-243-0-src.tar.xz', + 'staleversion-243-0.hint', + 'staleversion-243-0.tar.xz', + 'staleversion-250-0-src.hint', + 'staleversion-250-0-src.tar.xz', + 'staleversion-250-0.hint', + 'staleversion-250-0.tar.xz', + 'staleversion-260-0-src.hint', + 'staleversion-260-0-src.tar.xz', + 'staleversion-260-0.hint', + 'staleversion-260-0.tar.xz'], + 'x86_64/release/testpackage': ['sha512.sum', + 'testpackage-0.1-1-src.hint', + 'testpackage-0.1-1-src.tar.bz2', + 'testpackage-0.1-1.hint', + 'testpackage-0.1-1.tar.bz2']} diff --git a/test/testdata/upload_bad_auth/stagingdir.expected b/test/testdata/upload_bad_auth/stagingdir.expected new file mode 100644 index 0000000..e82d3c8 --- /dev/null +++ b/test/testdata/upload_bad_auth/stagingdir.expected @@ -0,0 +1 @@ +{'.': []} diff --git a/test/testdata/upload_bad_auth/vault.expected b/test/testdata/upload_bad_auth/vault.expected new file mode 100644 index 0000000..edf2c65 --- /dev/null +++ b/test/testdata/upload_bad_auth/vault.expected @@ -0,0 +1,15 @@ +{'.': [], + 'x86_64': [], + 'x86_64/release': [], + 'x86_64/release/staleversion': ['staleversion-240-1-src.hint', + 'staleversion-240-1-src.tar.xz', + 'staleversion-240-1.hint', + 'staleversion-240-1.tar.xz', + 'staleversion-242-0-src.hint', + 'staleversion-242-0-src.tar.xz', + 'staleversion-242-0.hint', + 'staleversion-242-0.tar.xz', + 'staleversion-251-0-src.hint', + 'staleversion-251-0-src.tar.xz', + 'staleversion-251-0.hint', + 'staleversion-251-0.tar.xz']}