summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorFlorian Weimer <fw@deneb.enyo.de>2010-05-08 09:16:30 +0000
committerFlorian Weimer <fw@deneb.enyo.de>2010-05-08 09:16:30 +0000
commit3f5602f9ec7f707c6835f997d66fd5d7a9da5781 (patch)
treeaefa0393139e0fe405ee614df969c6c4ec90429a /lib
parentf94a073acb9bc5f0dc82a8b61638dd48e5def521 (diff)
sectracker.parsers: rename from parsers
git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@14638 e39458fd-73e7-0310-bf30-c45bca0a0e42
Diffstat (limited to 'lib')
-rw-r--r--lib/python/sectracker/parsers.py (renamed from lib/python/parsers.py)107
-rw-r--r--lib/python/sectracker_test/test_parsers.py119
2 files changed, 120 insertions, 106 deletions
diff --git a/lib/python/parsers.py b/lib/python/sectracker/parsers.py
index d8070099cb..7f40f256e3 100644
--- a/lib/python/parsers.py
+++ b/lib/python/sectracker/parsers.py
@@ -1,4 +1,4 @@
-# parsers -- various text file parsers
+# sectracker.parsers -- various text file parsers
# Copyright (C) 2010 Florian Weimer <fw@deneb.enyo.de>
#
# This program is free software; you can redistribute it and/or modify
@@ -15,14 +15,12 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-import operator
import re
import debian_support
import sectracker.regexpcase as _regexpcase
from sectracker.xcollections import namedtuple as _namedtuple
import sectracker.xpickle as _xpickle
-
import sectracker.diagnostics
FORMAT = "1"
@@ -246,106 +244,3 @@ def cvelist(path, f):
emit()
return List(tuple(bugs), diag.messages())
-
-def _test():
- o = binarypackages("../../data/packages/sid__main_i386_Packages")
- assert type(o) == type(())
- assert "bash" in o
-
- o = sourcepackages("../../data/packages/sid__main_Sources")
- assert type(o) == type({})
- assert "bash" in o
-
- _xpickle.safeunlink("../../data/CVE/list" + _xpickle.EXTENSION)
- o = cvelist("../../data/CVE/list")
- for err in o.messages:
- print "%s:%d: %s: %s" % (err.file, err.line, err.level, err.message)
-
- Message = sectracker.diagnostics.Message
- for (line, res, xmsgs) in [
- (' - foo <unfixed>',
- PackageAnnotation(17, "package", None, "foo", "unfixed", None,
- None, None, (), False), ()),
- (' - foo',
- PackageAnnotation(17, "package", None, "foo", "unfixed", None,
- None, None, (), False), ()),
- (' [lenny] - foo <unfixed>',
- PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
- None, None, (), False), ()),
- (' [lenny] - foo <undetermined> (bug #1234)',
- PackageAnnotation(17, "package", "lenny", "foo", "undetermined",
- None, None, None, (1234,), False), ()),
- (' [lenny] - foo <itp> (bug #1234)',
- PackageAnnotation(17, "package", "lenny", "foo", "itp", None,
- None, None, (1234,), False), ()),
- (' [lenny] - foo <itp>',
- PackageAnnotation(17, "package", "lenny", "foo", "itp", None,
- None, None, (), False),
- (Message("CVE", 17, "error",
- "<itp> needs Debian bug reference"),)),
- (' [lenny] - foo 1.0',
- PackageAnnotation(17, "package", "lenny", "foo", "fixed", "1.0" ,
- None, None, (), False), ()),
- (' [lenny] - foo <unfixed> (bug filed)',
- PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
- None, None, (), True), ()),
- (' [lenny] - foo <unfixed> (bug filed; bug #1234)',
- PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
- None, None, (1234,), False),
- (Message("CVE", 17, "error",
- "'bug filed' and bug numbers listed"),)),
- (' [lenny] - foo <unfixed> (low)',
- PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
- None, "low", (), False), ()),
- (' [lenny] - foo <unfixed> (low; low)',
- PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
- None, "low", (), False),
- (Message("CVE", 17, "error", "duplicate flag: 'low'"),)),
- (' [lenny] - foo <unfixed> (bug #1234; garbled)',
- PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
- None, None, (1234,), False),
- (Message("CVE", 17, "error",
- "invalid inner annotation: 'garbled'"),)),
- (' [lenny] - foo <no-dsa> (explanation goes here)',
- PackageAnnotation(17, "package", "lenny", "foo", "no-dsa", None,
- "explanation goes here", None, (), False), ()),
- (' [lenny] - foo <end-of-life> (explanation goes here)',
- PackageAnnotation(17, "package", "lenny", "foo", "end-of-life",
- None, "explanation goes here", None, (), False),
- ()),
- (' [lenny] - foo <not-affected> (explanation goes here)',
- PackageAnnotation(17, "package", "lenny", "foo", "not-affected",
- None,
- "explanation goes here", None, (), False), ()),
- ('\t{CVE-2009-1234 CVE-2009-1235}',
- XrefAnnotation(17, "xref",
- tuple("CVE-2009-1234 CVE-2009-1235".split())),
- ()),
- ('\t{}', None,
- (Message("CVE", 17, "error", "empty cross-reference"),)),
- (' NOT-FOR-US: Plan 9',
- StringAnnotation(17, "NOT-FOR-US", "Plan 9"), ()),
- (' TODO: to-do', StringAnnotation(17, "TODO", "to-do"), ()),
- (' NOTE: note', StringAnnotation(17, "NOTE", "note"), ()),
- (' RESERVED', FlagAnnotation(17, 'RESERVED'), ()),
- (' REJECTED', FlagAnnotation(17, 'REJECTED'), ()),
- (' garbled', None,
- (Message("CVE", 17, "error", "invalid annotation"),)),
- (' [lenny] - foo <garbled> (bug #1234)', None,
- (Message("CVE", 17, "error",
- "invalid pseudo-version: 'garbled'"),)),
- ]:
- anns = []
- diag = sectracker.diagnostics.Diagnostics()
- diag.setlocation("CVE", 17)
- _annotationdispatcher(line, diag, anns)
- msgs = diag.messages()
- assert tuple(msgs) == xmsgs, repr(msgs)
- if anns:
- r = anns[0]
- else:
- r = None
- assert r == res, repr(anns)
-
-if __name__ == "__main__":
- _test()
diff --git a/lib/python/sectracker_test/test_parsers.py b/lib/python/sectracker_test/test_parsers.py
new file mode 100644
index 0000000000..8d3f49b4f6
--- /dev/null
+++ b/lib/python/sectracker_test/test_parsers.py
@@ -0,0 +1,119 @@
+# Test for sectracker.parsers
+# Copyright (C) 2010 Florian Weimer <fw@deneb.enyo.de>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+from sectracker.parsers import *
+import sectracker.parsers as p
+from sectracker.xpickle import safeunlink, EXTENSION
+
+o = binarypackages("../../data/packages/sid__main_i386_Packages")
+assert type(o) == type(())
+assert "bash" in o
+
+o = sourcepackages("../../data/packages/sid__main_Sources")
+assert type(o) == type({})
+assert "bash" in o
+
+safeunlink("../../data/CVE/list" + EXTENSION)
+o = cvelist("../../data/CVE/list")
+for err in o.messages:
+ print "%s:%d: %s: %s" % (err.file, err.line, err.level, err.message)
+
+Message = sectracker.diagnostics.Message
+for (line, res, xmsgs) in [
+ (' - foo <unfixed>',
+ PackageAnnotation(17, "package", None, "foo", "unfixed", None,
+ None, None, (), False), ()),
+ (' - foo',
+ PackageAnnotation(17, "package", None, "foo", "unfixed", None,
+ None, None, (), False), ()),
+ (' [lenny] - foo <unfixed>',
+ PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
+ None, None, (), False), ()),
+ (' [lenny] - foo <undetermined> (bug #1234)',
+ PackageAnnotation(17, "package", "lenny", "foo", "undetermined",
+ None, None, None, (1234,), False), ()),
+ (' [lenny] - foo <itp> (bug #1234)',
+ PackageAnnotation(17, "package", "lenny", "foo", "itp", None,
+ None, None, (1234,), False), ()),
+ (' [lenny] - foo <itp>',
+ PackageAnnotation(17, "package", "lenny", "foo", "itp", None,
+ None, None, (), False),
+ (Message("CVE", 17, "error",
+ "<itp> needs Debian bug reference"),)),
+ (' [lenny] - foo 1.0',
+ PackageAnnotation(17, "package", "lenny", "foo", "fixed", "1.0" ,
+ None, None, (), False), ()),
+ (' [lenny] - foo <unfixed> (bug filed)',
+ PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
+ None, None, (), True), ()),
+ (' [lenny] - foo <unfixed> (bug filed; bug #1234)',
+ PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
+ None, None, (1234,), False),
+ (Message("CVE", 17, "error",
+ "'bug filed' and bug numbers listed"),)),
+ (' [lenny] - foo <unfixed> (low)',
+ PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
+ None, "low", (), False), ()),
+ (' [lenny] - foo <unfixed> (low; low)',
+ PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
+ None, "low", (), False),
+ (Message("CVE", 17, "error", "duplicate flag: 'low'"),)),
+ (' [lenny] - foo <unfixed> (bug #1234; garbled)',
+ PackageAnnotation(17, "package", "lenny", "foo", "unfixed", None,
+ None, None, (1234,), False),
+ (Message("CVE", 17, "error",
+ "invalid inner annotation: 'garbled'"),)),
+ (' [lenny] - foo <no-dsa> (explanation goes here)',
+ PackageAnnotation(17, "package", "lenny", "foo", "no-dsa", None,
+ "explanation goes here", None, (), False), ()),
+ (' [lenny] - foo <end-of-life> (explanation goes here)',
+ PackageAnnotation(17, "package", "lenny", "foo", "end-of-life",
+ None, "explanation goes here", None, (), False),
+ ()),
+ (' [lenny] - foo <not-affected> (explanation goes here)',
+ PackageAnnotation(17, "package", "lenny", "foo", "not-affected",
+ None,
+ "explanation goes here", None, (), False), ()),
+ ('\t{CVE-2009-1234 CVE-2009-1235}',
+ XrefAnnotation(17, "xref",
+ tuple("CVE-2009-1234 CVE-2009-1235".split())),
+ ()),
+ ('\t{}', None,
+ (Message("CVE", 17, "error", "empty cross-reference"),)),
+ (' NOT-FOR-US: Plan 9',
+ StringAnnotation(17, "NOT-FOR-US", "Plan 9"), ()),
+ (' TODO: to-do', StringAnnotation(17, "TODO", "to-do"), ()),
+ (' NOTE: note', StringAnnotation(17, "NOTE", "note"), ()),
+ (' RESERVED', FlagAnnotation(17, 'RESERVED'), ()),
+ (' REJECTED', FlagAnnotation(17, 'REJECTED'), ()),
+ (' garbled', None,
+ (Message("CVE", 17, "error", "invalid annotation"),)),
+ (' [lenny] - foo <garbled> (bug #1234)', None,
+ (Message("CVE", 17, "error",
+ "invalid pseudo-version: 'garbled'"),)),
+ ]:
+ anns = []
+ diag = sectracker.diagnostics.Diagnostics()
+ diag.setlocation("CVE", 17)
+ p._annotationdispatcher(line, diag, anns)
+ msgs = diag.messages()
+ assert tuple(msgs) == xmsgs, repr(msgs)
+ if anns:
+ r = anns[0]
+ else:
+ r = None
+ assert r == res, repr(anns)

© 2014-2024 Faster IT GmbH | imprint | privacy policy