def testMissing(self): req0 = moosesqa.Requirement(name='req0', requirement='requirement', design=['Diffusion.md'], issues=['#1234']) req0.specification = moosesqa.TestSpecification() req1 = moosesqa.Requirement(name='req1') req1.specification = moosesqa.TestSpecification() with self.assertLogs(level='ERROR') as cm: moosesqa.check_requirements([req0, req1]) self.assertIn("No 'requirement', 'design', and 'issues' supplied", cm.output[0]) req1.design = ['something'] req1.design_line = 2 with self.assertLogs(level='ERROR') as cm: moosesqa.check_requirements([req0, req1]) self.assertIn("No 'requirement' supplied", cm.output[0]) self.assertIn("No 'issues' supplied", cm.output[1]) req1.requirement = 'some requirement' req1.issues = ['something'] req1.design = None with self.assertLogs(level='ERROR') as cm: moosesqa.check_requirements([req0, req1]) self.assertIn("No 'design' supplied", cm.output[0])
def testCollections(self): req0 = moosesqa.Requirement(name='req0', requirement='requirement', design=['Diffusion.md'], issues=['#1234'], specification=moosesqa.TestSpecification(), collections={'test'}) req1 = moosesqa.Requirement(name='req1', requirement='requirement2', design=['Diffusion.md'], issues=['#1234'], specification=moosesqa.TestSpecification(), collections={'test2'}) with self.assertLogs(level='ERROR') as cm: moosesqa.check_requirements([req0, req1], allowed_collections={'test'}) self.assertIn("Invalid collection names found: test2", cm.output[0])
def testDuplicates(self): req0 = moosesqa.Requirement(name='req0', requirement='requirement', design=['Diffusion.md'], issues=['#1234']) req0.specification = moosesqa.TestSpecification() req1 = moosesqa.Requirement(name='req1', requirement='requirement', design=['Diffusion.md'], issues=['#1234']) req1.specification = moosesqa.TestSpecification() with self.assertLogs(level='ERROR') as cm: moosesqa.check_requirements([req0, req1]) self.assertIn('Duplicate requirements found', cm.output[0]) with self.assertLogs(level='WARNING') as cm: moosesqa.check_requirements([req0, req1], duplicate_requirement=logging.WARNING) self.assertIn('Duplicate requirements found', cm.output[0])