def testExceptions(self): """ Test S3Duplicate exceptions for nonexistent fields """ assertRaises = self.assertRaises # Dummy item for testing item = S3ImportItem(self.job) item.table = current.db.dedup_test # Test invalid primary deduplicate = S3Duplicate(primary=("nonexistent", )) item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="Test0") with assertRaises(SyntaxError): deduplicate(item) # Test invalid secondary deduplicate = S3Duplicate(secondary=("nonexistent", )) item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="Test0") with assertRaises(SyntaxError): deduplicate(item) # Test invalid type with assertRaises(TypeError): deduplicate = S3Duplicate(primary=lambda: None) with assertRaises(TypeError): deduplicate = S3Duplicate(secondary=17)
def testMatch(self): """ Test match with primary/secondary field """ assertEqual = self.assertEqual deduplicate = S3Duplicate( primary=("name", ), secondary=("secondary", ), ) # Dummy item for testing item = S3ImportItem(self.job) item.table = current.db.dedup_test ids = self.ids # Test primary match item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="Test0") deduplicate(item) assertEqual(item.id, ids["TEST0"]) assertEqual(item.method, item.METHOD.UPDATE) # Test primary match + secondary match item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="Test2", secondary="secondaryX") deduplicate(item) assertEqual(item.id, ids["TEST2"]) assertEqual(item.method, item.METHOD.UPDATE) # Test primary match + secondary mismatch item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="test4", secondary="secondaryX") deduplicate(item) assertEqual(item.id, None) assertEqual(item.method, item.METHOD.CREATE) # Test primary mismatch item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="Test") deduplicate(item) assertEqual(item.id, None) assertEqual(item.method, item.METHOD.CREATE)
def testDefaults(self): """ Test default behavior """ assertEqual = self.assertEqual deduplicate = S3Duplicate() # Dummy item for testing item = S3ImportItem(self.job) item.table = current.db.dedup_test ids = self.ids # Test primary match item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="Test0") deduplicate(item) assertEqual(item.id, ids["TEST0"]) assertEqual(item.method, item.METHOD.UPDATE) # Test primary match + secondary mismatch item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="test4", secondary="secondaryX") deduplicate(item) assertEqual(item.id, ids["TEST4"]) assertEqual(item.method, item.METHOD.UPDATE) # Test primary mismatch item.id = None item.method = item.METHOD.CREATE item.data = Storage(name="Test") deduplicate(item) assertEqual(item.id, None) assertEqual(item.method, item.METHOD.CREATE)