class BibCheckAmendableRecordTest(InvenioTestCase): """ Check the AmendableRecord class """ def setUp(self): """ Create a mock amenda record to test with """ self.record = AmendableRecord(MOCK_RECORD) self.record.set_rule(RULE_MOCK) def test_valid(self): """ Test the set_invalid method """ self.assertTrue(self.record.valid) self.record.set_invalid("test message") self.assertFalse(self.record.valid) self.assertEqual(self.record.errors, ["Rule test_rule: test message"]) def test_amend(self): """ Test the amend method """ self.assertFalse(self.record.amendments) self.record.amend_field(("100__a", 0, 0), "Pepe", "Changed author") self.assertEqual(self.record["100"][0][0][0][1], "Pepe") self.assertTrue(self.record.amended) self.assertEqual(self.record.amendments, ["Rule test_rule: Changed author"]) def test_itertags(self): """ Test the itertags method """ self.assertEqual( set(self.record.keys()), set(self.record.itertags("%%%")) ) self.assertEqual(set(['100']), set(self.record.itertags("100"))) self.assertEqual(set(['001', '005']), set(self.record.itertags("00%"))) self.assertEqual(set(), set(self.record.itertags("111"))) def test_iterfields(self): """ Test the iterfields method """ self.assertEqual(set(), set(self.record.iterfields(["111%%%"]))) self.assertEqual( set([(("100__a", 0, 0), "Pepe")]), set(self.record.iterfields(["1%%%%%"])) ) self.assertEqual( set([(("9944_u", 0, 0), self.record["994"][0][0][0][1]), (("9954_u", 0, 0), self.record["995"][0][0][0][1]), (("9964_u", 0, 0), self.record["996"][0][0][0][1]), (("9974_u", 0, 0), self.record["997"][0][0][0][1]), (("9984_u", 0, 0), self.record["998"][0][0][0][1]), (("9994_u", 0, 0), self.record["999"][0][0][0][1])]), set(self.record.iterfields(["9%%%%u"])) ) def test_is_dummy(self): """ Test the is_dummy method """ dummy_record = { '001': [([], ' ', ' ', '1', 1)] } record = AmendableRecord(dummy_record) self.assertTrue(record.is_dummy())
class BibCheckAmendableRecordTest(InvenioTestCase): """ Check the AmendableRecord class """ def setUp(self): """ Create a mock amenda record to test with """ self.record = AmendableRecord(MOCK_RECORD) self.record.set_rule(RULE_MOCK) def test_valid(self): """ Test the set_invalid method """ self.assertTrue(self.record.valid) self.record.set_invalid("test message") self.assertFalse(self.record.valid) self.assertEqual(len(self.record._errors), 1) error = self.record._errors[0] self.assertEqual(error.nature, "error") self.assertEqual(error.rule, "test_rule") self.assertEqual(error.msg, "test message") def test_amend(self): """ Test the amend method """ self.assertFalse(self.record._amendments) self.record.amend_field(("100__a", 0, 0), "Pepe", "Changed author") self.assertEqual(self.record["100"][0][0][0][1], "Pepe") self.assertTrue(self.record.amended) self.assertEqual(len(self.record._amendments), 1) amendment = self.record._amendments[0] self.assertEqual(amendment.nature, "amendment") self.assertEqual(amendment.rule, "test_rule") self.assertEqual(amendment.msg, "Changed author") def test_itertags(self): """ Test the itertags method """ self.assertEqual(set(self.record.keys()), set(self.record.itertags("%%%"))) self.assertEqual(set(['100']), set(self.record.itertags("100"))) self.assertEqual(set(['001', '005']), set(self.record.itertags("00%"))) self.assertEqual(set(), set(self.record.itertags("111"))) def test_iterfields(self): """ Test the iterfields method """ self.assertEqual(set(), set(self.record.iterfields(["111%%%"]))) self.assertEqual(set([(("100__a", 0, 0), "Pepe")]), set(self.record.iterfields(["1%%%%%"]))) self.assertEqual( set([(("695__a", 0, 0, 1), "gravitation: nonlocal")]), set( self.record.iterfields(["695__a"], subfield_filter=('2', 'INSPIRE')))) self.assertEqual( set([(("696__a", 0, 1, 0), "gravitation: nonlocal")]), set( self.record.iterfields(["696__a"], subfield_filter=('2', 'INSPIRE')))) self.assertEqual( set(), set( self.record.iterfields(["697__a"], subfield_filter=('2', 'INSPIRE')))) self.assertEqual( set([(("698__a", 0, 0, 2), "gravitation: nonlocal"), (("698__a", 0, 1, 2), "propagator"), (("698__a", 0, 3, 2), "singularity")]), set( self.record.iterfields(["698__a"], subfield_filter=('2', 'INSPIRE')))) self.assertEqual( set([(("699__a", 0, 1, 0), "gravitation"), (("699__a", 1, 1, 0), "antigravitation")]), set( self.record.iterfields(["699__a"], subfield_filter=('2', 'INSPIRE')))) self.assertEqual( set([(("9944_u", 0, 0), self.record["994"][0][0][0][1]), (("9954_u", 0, 0), self.record["995"][0][0][0][1]), (("9964_u", 0, 0), self.record["996"][0][0][0][1]), (("9974_u", 0, 0), self.record["997"][0][0][0][1]), (("9984_u", 0, 0), self.record["998"][0][0][0][1]), (("9994_u", 0, 0), self.record["999"][0][0][0][1])]), set(self.record.iterfields(["9%%%%u"]))) def test_is_dummy(self): """ Test the is_dummy method """ dummy_record = {'001': [([], ' ', ' ', '1', 1)]} record = AmendableRecord(dummy_record) self.assertTrue(record.is_dummy())