Browse Source

add APT::Update::Auth-Failure script

debian/1.8.y
Michael Vogt 14 years ago
parent
commit
5d149bfc7f
  1. 1
      apt-pkg/acquire-item.cc
  2. 18
      test/pre-upload-check.py

1
apt-pkg/acquire-item.cc

@ -1179,6 +1179,7 @@ void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
"GPG error: %s: %s\n"),
Desc.Description.c_str(),
LookupTag(Message,"Message").c_str());
RunScripts("APT::Update::Auth-Failure");
return;
} else {
_error->Warning(_("GPG error: %s: %s"),

18
test/pre-upload-check.py

@ -25,7 +25,8 @@ class testAptAuthenticationReliability(unittest.TestCase):
apt = "apt-get"
def setUp(self):
pass
if os.path.exists("/tmp/autFailure"):
os.unlink("/tmp/authFailure");
def testRepositorySigFailure(self):
"""
test if a repository that used to be authenticated and fails on
@ -39,26 +40,33 @@ class testAptAuthenticationReliability(unittest.TestCase):
os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (0,0))
res = call([self.apt,
"update",
"-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure"
"-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure",
"-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure',
] + apt_args,
stdout=stdout, stderr=stderr)
self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"),
"The gpg file disappeared, this should not happen")
self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"),
"The Packages file disappeared, this should not happen")
self.assert_(os.path.exists("/tmp/authFailure"),
"The APT::Update::Auth-Failure script did not run")
os.unlink("/tmp/authFailure");
# the same with i-m-s hit this time
for f in glob.glob("./authReliability/lists/*"):
shutil.copy(f,"/var/lib/apt/lists")
os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (time.time(),time.time()))
res = call([self.apt,
"update",
"-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure"
"-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure",
"-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure',
] + apt_args,
stdout=stdout, stderr=stderr)
self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"),
"The gpg file disappeared, this should not happen")
self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"),
"The Packages file disappeared, this should not happen")
self.assert_(os.path.exists("/tmp/authFailure"),
"The APT::Update::Auth-Failure script did not run")
def testRepositorySigGood(self):
"""
test that a regular repository with good data stays good
@ -239,5 +247,5 @@ if __name__ == "__main__":
stderr = sys.stderr
# run only one for now
#unittest.main(defaultTest="testAptAuthenticationReliability")
unittest.main()
unittest.main(defaultTest="testAptAuthenticationReliability")
#unittest.main()

Loading…
Cancel
Save