Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)