From b011f69bfe5943afdfdf4e381653204445614d9f Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Thu, 16 Oct 2025 18:04:56 -0400 Subject: cargo: Move all conversions in _raw_to_dataclass() This allows keeping the manifest unmodified which is better practice for a parser. Previously some places had e.g. raw.setdefault(). It also fix some values: - BuildTarget.doc_scrape_examples is removed. It seems to be some experimental cargo feature, but I haven't found documentation that says it should be part of the manifest. It was also missing from raw manifest. - BuildTarget.edition does not default to 2015, it default to package's edition, which itself default to 2015. - bench value defaults to False for tests. - Dependency.path must be relative to its Cargo.toml location. If the value comes from the package it can be used as-is, but if it comes from workspace it must be made relative. - Library.name default to its package name with dash replaced with underscores. --- unittests/cargotests.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'unittests') diff --git a/unittests/cargotests.py b/unittests/cargotests.py index 89b360512..22d77b35f 100644 --- a/unittests/cargotests.py +++ b/unittests/cargotests.py @@ -416,29 +416,28 @@ class CargoTomlTest(unittest.TestCase): self.assertEqual(manifest.lib.name, 'pango') self.assertEqual(manifest.lib.crate_type, ['lib']) - self.assertEqual(manifest.lib.path, os.path.join('src', 'lib.rs')) + self.assertEqual(manifest.lib.path, 'src/lib.rs') self.assertEqual(manifest.lib.test, True) self.assertEqual(manifest.lib.doctest, True) self.assertEqual(manifest.lib.bench, True) self.assertEqual(manifest.lib.doc, True) self.assertEqual(manifest.lib.harness, True) - self.assertEqual(manifest.lib.edition, '2015') + self.assertEqual(manifest.lib.edition, '2021') self.assertEqual(manifest.lib.required_features, []) self.assertEqual(manifest.lib.plugin, False) self.assertEqual(manifest.lib.proc_macro, False) - self.assertEqual(manifest.lib.doc_scrape_examples, True) self.assertEqual(len(manifest.test), 1) self.assertEqual(manifest.test[0].name, 'check_gir') self.assertEqual(manifest.test[0].crate_type, ['bin']) self.assertEqual(manifest.test[0].path, 'tests/check_gir.rs') - self.assertEqual(manifest.lib.path, os.path.join('src', 'lib.rs')) + self.assertEqual(manifest.lib.path, 'src/lib.rs') self.assertEqual(manifest.test[0].test, True) - self.assertEqual(manifest.test[0].doctest, False) - self.assertEqual(manifest.test[0].bench, True) + self.assertEqual(manifest.test[0].doctest, True) + self.assertEqual(manifest.test[0].bench, False) self.assertEqual(manifest.test[0].doc, False) self.assertEqual(manifest.test[0].harness, True) - self.assertEqual(manifest.test[0].edition, '2015') + self.assertEqual(manifest.test[0].edition, '2021') self.assertEqual(manifest.test[0].required_features, []) self.assertEqual(manifest.test[0].plugin, False) -- cgit v1.2.3