def test_delete_multiple_documents_succeeds(self):
        self.archivedService.post(self.archived_only_data)
        DeleteArchivedDocumentCommand().run(['588c1b901d41c805dce70df0', '57d224de069b7f038e9d2a53'])

        cursor = self.archivedService.get(req=None, lookup={'_id': '588c1b901d41c805dce70df0'})
        self.assertEqual(0, len(cursor.docs))
        cursor = self.archivedService.get(req=None, lookup={'_id': '57d224de069b7f038e9d2a53'})
        self.assertEqual(0, len(cursor.docs))
    def test_delete_document_succeeds(self):
        self.archivedService.post(self.archived_only_data)
        DeleteArchivedDocumentCommand().run(['588c1b901d41c805dce70df0'])

        cursor = self.archivedService.get(req=None, lookup={'_id': '588c1b901d41c805dce70df0'})
        self.assertEqual(0, len(cursor.docs))
        cursor = self.archivedService.get(req=None, lookup={'_id': '213456'})
        self.assertEqual(0, len(cursor.docs))
    def test_wrong_id_provided_exception(self):
        self.archivedService.post(self.archived_only_data)

        f = io.StringIO()
        with redirect_stdout(f):
            DeleteArchivedDocumentCommand().run(['5880000000000'])
        s = f.getvalue()
        self.assertEqual(s, 'No archived story found with given ids(s)!\n')
    def test_no_id_provided_exception(self):
        self.archivedService.post(self.archived_only_data)

        f = io.StringIO()
        with redirect_stdout(f):
            DeleteArchivedDocumentCommand().run([])
        s = f.getvalue()
        self.assertEqual(s, 'Please provide at least one id!\n')
    def test_deleting_one_take_deletes_package_but_keeps_other_takes_succeeds(self):
        # it will delete other takes in that package
        self.archivedService.post(self.archived_only_data)
        DeleteArchivedDocumentCommand().run(['588c1b901d41c805dce70df0'])

        cursor = self.archivedService.get(req=None, lookup={'_id': '588c1b901d41c805dce70df0'})
        self.assertEqual(0, len(cursor.docs))
        cursor = self.archivedService.get(req=None, lookup={'_id': '213456'})
        self.assertEqual(0, len(cursor.docs))
        cursor = self.archivedService.get(req=None, lookup={'_id': '57d224de069b7f038e9d2a53'})
        self.assertEqual(1, len(cursor.docs))
    def test_delete_non_text_document_succeeds(self):
        self.archivedService.post(self.archived_only_data)

        DeleteArchivedDocumentCommand().run(["213456"])
        cursor = self.archivedService.get(req=None, lookup={"_id": "213456"})
        self.assertEqual(0, len(cursor.docs))