|
@@ -18,8 +18,37 @@ import metadata.parse
|
|
|
|
|
|
|
|
|
class ParseTest(unittest.TestCase):
|
|
|
- def test_parse(self):
|
|
|
- filepath = os.path.join(_THIS_DIR, "data", "README.chromium.test")
|
|
|
+ def test_parse_single(self):
|
|
|
+ """Check parsing works for a single dependency's metadata."""
|
|
|
+ filepath = os.path.join(_THIS_DIR, "data",
|
|
|
+ "README.chromium.test.single-valid")
|
|
|
+ all_metadata = metadata.parse.parse_file(filepath)
|
|
|
+
|
|
|
+ self.assertEqual(len(all_metadata), 1)
|
|
|
+ self.assertListEqual(
|
|
|
+ all_metadata[0].get_entries(),
|
|
|
+ [
|
|
|
+ ("Name", "Test-A README for Chromium metadata"),
|
|
|
+ ("Short Name", "metadata-test-valid"),
|
|
|
+ ("URL", "https://www.example.com/metadata,\n"
|
|
|
+ " https://www.example.com/parser"),
|
|
|
+ ("Version", "1.0.12"),
|
|
|
+ ("Date", "2020-12-03"),
|
|
|
+ ("License", "Apache, 2.0 and MIT"),
|
|
|
+ ("License File", "LICENSE"),
|
|
|
+ ("Security Critical", "yes"),
|
|
|
+ ("Shipped", "yes"),
|
|
|
+ ("CPEPrefix", "unknown"),
|
|
|
+ ("Description", "A test metadata file, with a\n"
|
|
|
+ " multi-line description."),
|
|
|
+ ("Local Modifications", "None,\nEXCEPT:\n* nothing."),
|
|
|
+ ],
|
|
|
+ )
|
|
|
+
|
|
|
+ def test_parse_multiple(self):
|
|
|
+ """Check parsing works for multiple dependencies' metadata."""
|
|
|
+ filepath = os.path.join(_THIS_DIR, "data",
|
|
|
+ "README.chromium.test.multi-invalid")
|
|
|
all_metadata = metadata.parse.parse_file(filepath)
|
|
|
|
|
|
# Dependency metadata with no entries at all are ignored.
|
|
@@ -29,7 +58,8 @@ class ParseTest(unittest.TestCase):
|
|
|
self.assertListEqual(
|
|
|
all_metadata[0].get_entries(),
|
|
|
[
|
|
|
- ("Name", "Test-A README for Chromium metadata"),
|
|
|
+ ("Name",
|
|
|
+ "Test-A README for Chromium metadata (0 errors, 0 warnings)"),
|
|
|
("Short Name", "metadata-test-valid"),
|
|
|
("URL", "https://www.example.com/metadata,\n"
|
|
|
" https://www.example.com/parser"),
|
|
@@ -51,7 +81,8 @@ class ParseTest(unittest.TestCase):
|
|
|
self.assertListEqual(
|
|
|
all_metadata[1].get_entries(),
|
|
|
[
|
|
|
- ("Name", "Test-B README for Chromium metadata"),
|
|
|
+ ("Name",
|
|
|
+ "Test-B README for Chromium metadata (4 errors, 1 warning)"),
|
|
|
("SHORT NAME", "metadata-test-invalid"),
|
|
|
("URL", "file://home/drive/chromium/src/metadata"),
|
|
|
("Version", "0"),
|
|
@@ -68,7 +99,8 @@ class ParseTest(unittest.TestCase):
|
|
|
self.assertListEqual(
|
|
|
all_metadata[2].get_entries(),
|
|
|
[
|
|
|
- ("Name", "Test-C README for Chromium metadata"),
|
|
|
+ ("Name",
|
|
|
+ "Test-C README for Chromium metadata (5 errors, 1 warning)"),
|
|
|
("URL", "https://www.example.com/first"),
|
|
|
("URL", "https://www.example.com/second"),
|
|
|
("Version", "N/A"),
|