Ejemplo n.º 1
0
 def testEscaping(self):
     idsPath = self.tmp_path / 'pruebo.ids'
     ids = Ids(idsPath)
     try:
         ids.add("needs_\n_escape")
         self.assertEqual('needs_%0A_escape\n', idsPath.read_text())
         self.assertEqual(['needs_\n_escape'], ids.getIds())
         ids.reopen()
         self.assertEqual('needs_%0A_escape\n', idsPath.read_text())
         self.assertEqual(['needs_\n_escape'], ids.getIds())
         ids.reopen()
         self.assertEqual(['needs_\n_escape'], ids.getIds())
     finally:
         ids.close()
Ejemplo n.º 2
0
    def testDeleteWithError(self):
        ids = Ids(self.tmp_path / "test.ids")
        try:
            for i in range(10):
                ids.add('id:{}'.format(i))

            deleteIds = DeleteIds(Bucket(id='test'))

            def delete(anUpload):
                if anUpload.id == 'id:7':
                    raise ValueError('fout')

            observer = CallTrace(
                methods=dict(delete=delete,
                             deleteIdentifier=ids.remove,
                             flushIds=lambda **kwargs: ids.reopen()))
            deleteIds.addObserver(observer)
            self.assertRaises(ValueError, lambda: deleteIds.delete(ids))
            self.assertEqual(['id:7', 'id:8', 'id:9'],
                             readIds(join(self.tempdir, 'test.ids')))
            self.assertEqual(
                8,
                len([m for m in observer.calledMethodNames()
                     if m == 'delete']))
        finally:
            ids.close()