def test_parsing(self): for spec_list_text, specs in self.examples.items(): with self.subTest(spec=spec_list_text): spec_list = base.Spec(spec_list_text) self.assertEqual(spec_list_text, str(spec_list)) self.assertNotEqual(spec_list_text, spec_list) self.assertCountEqual(specs, [str(spec) for spec in spec_list]) for spec_text in specs: self.assertIn(str(base.SpecItem(spec_text)), repr(spec_list))
def test_parsing_split(self): for spec_list_texts, specs in self.split_examples.items(): spec_list = base.Spec(*spec_list_texts) self.assertEqual(','.join(spec_list_texts), str(spec_list)) self.assertEqual(specs, [str(spec) for spec in spec_list]) self.assertEqual(spec_list, base.Spec(','.join(spec_list_texts))) for spec_text in specs: self.assertTrue( repr(base.SpecItem(spec_text)) in repr(spec_list))
def test_parsing(self): for spec_list_text, specs in self.examples.items(): spec_list = base.Spec(spec_list_text) self.assertEqual(spec_list_text, str(spec_list)) self.assertNotEqual(spec_list_text, spec_list) self.assertEqual(specs, [str(spec) for spec in spec_list]) for spec_text in specs: self.assertTrue( repr(base.SpecItem(spec_text)) in repr(spec_list))
def test_parsing_split(self): for spec_list_texts, specs in self.split_examples.items(): with self.subTest(spec=spec_list_texts): spec_list = base.Spec(*spec_list_texts) self.assertEqual(','.join(spec_list_texts), str(spec_list)) self.assertCountEqual(specs, [str(spec) for spec in spec_list]) self.assertEqual(spec_list, base.Spec(','.join(spec_list_texts))) for spec_text in specs: self.assertIn(str(base.SpecItem(spec_text)), repr(spec_list))
def test_components(self): for spec_text, components in self.components.items(): with self.subTest(spec_text=spec_text): kind, major, minor, patch, prerelease, build = components spec = base.SpecItem(spec_text) self.assertEqual(kind, spec.kind) self.assertEqual(major, spec.spec.major) self.assertEqual(minor, spec.spec.minor) self.assertEqual(patch, spec.spec.patch) self.assertEqual(prerelease, spec.spec.prerelease) self.assertEqual(build, spec.spec.build)
def test_matches(self): for spec_text, versions in self.matches.items(): spec = base.SpecItem(spec_text) matching, failing = versions for version_text in matching: version = base.Version(version_text) self.assertTrue(spec.match(version), "%r should match %r" % (version, spec)) for version_text in failing: version = base.Version(version_text) self.assertFalse(spec.match(version), "%r should not match %r" % (version, spec))
def test_hash(self): self.assertEqual( 1, len(set([base.SpecItem('==0.1.0'), base.SpecItem('==0.1.0')])))
def test_to_string(self): spec = base.SpecItem('==0.1.0') self.assertEqual('==0.1.0', str(spec)) self.assertEqual(base.SpecItem.KIND_EQUAL, spec.kind)
def test_equality(self): spec1 = base.SpecItem('==0.1.0') spec2 = base.SpecItem('==0.1.0') self.assertEqual(spec1, spec2) self.assertFalse(spec1 == '==0.1.0')
def test_invalids(self): for invalid in self.invalids: with self.assertRaises(ValueError, msg="SpecItem(%r) should be invalid" % invalid): _v = base.SpecItem(invalid)