Skip to content

Commit

Permalink
Add a test of upload auth failure
Browse files Browse the repository at this point in the history
  • Loading branch information
jon-turney committed Apr 17, 2024
1 parent cddf1ab commit 693426a
Show file tree
Hide file tree
Showing 10 changed files with 252 additions and 0 deletions.
35 changes: 35 additions & 0 deletions test/test_calm.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
sdesc: "The UNIX emulation engine"
ldesc: "A fraudulent package"
category: Base
homepage: https://cygwin.com

Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
sdesc: "The UNIX emulation engine"
ldesc: "A fraudulent packagee"
category: Base
requires: base-cygwin _windows ( >= 6.0 )
Binary file not shown.
9 changes: 9 additions & 0 deletions test/testdata/upload_bad_auth/homedir.expected
Original file line number Diff line number Diff line change
@@ -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']}
1 change: 1 addition & 0 deletions test/testdata/upload_bad_auth/htdocs.expected
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{'.': ['calm.db']}
182 changes: 182 additions & 0 deletions test/testdata/upload_bad_auth/rel_area.expected
Original file line number Diff line number Diff line change
@@ -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']}
1 change: 1 addition & 0 deletions test/testdata/upload_bad_auth/stagingdir.expected
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{'.': []}
15 changes: 15 additions & 0 deletions test/testdata/upload_bad_auth/vault.expected
Original file line number Diff line number Diff line change
@@ -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']}

0 comments on commit 693426a

Please sign in to comment.