예제 #1
0
    def test_shared(self):
        create_doc(self.factory.user)

        self.factory.xfer = DocumentShow()
        self.calljson('/lucterios.documents/documentShow', {"document": "5"}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'documentShow')
        self.assert_count_equal('', 9)
        self.assert_json_equal('LABELFORM', 'name', "doc1.png")
        self.assertEqual(len(self.json_actions), 3)

        self.factory.xfer = DocumentChangeShared()
        self.calljson('/lucterios.documents/documentChangeShared', {"document": "5"}, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentChangeShared')

        self.factory.xfer = DocumentShow()
        self.calljson('/lucterios.documents/documentShow', {"document": "5"}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'documentShow')
        self.assert_count_equal('', 10)
        self.assert_json_equal('LABELFORM', 'name', "doc1.png")
        self.assert_json_equal('EDIT', 'shared_link', "http://testserver/lucterios.documents/downloadFile?", True)
        self.assertEqual(len(self.json_actions), 3)

        shared_link = self.get_json_path('shared_link').split('?')[-1].split('&')
        self.assertEqual(len(shared_link), 2)
        self.assertEqual(shared_link[0][:7], 'shared=')
        shared_key = shared_link[0][7:]
        self.assertEqual(shared_link[1], 'filename=doc1.png')

        self.factory.xfer = DownloadFile()
        self.call_ex('/lucterios.documents/downloadFile', {"shared": shared_key, "filename": "doc1.png"}, False)
        file_content = self.response.getvalue()
        self.assertEqual(file_content[:4], b'\x89PNG')

        self.factory.xfer = DocumentChangeShared()
        self.calljson('/lucterios.documents/documentChangeShared', {"document": "5"}, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentChangeShared')

        self.factory.xfer = DocumentShow()
        self.calljson('/lucterios.documents/documentShow', {"document": "5"}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'documentShow')
        self.assert_count_equal('', 9)
        self.assert_json_equal('LABELFORM', 'name', "doc1.png")
        self.assertEqual(len(self.json_actions), 3)

        self.factory.xfer = DownloadFile()
        self.call_ex('/lucterios.documents/downloadFile', {"shared": shared_key, "filename": "doc1.png"}, False)
        file_content = self.response.getvalue().decode()
        self.assertEqual(file_content, 'Fichier non trouvé !')
예제 #2
0
    def test_cannot_view(self):
        self.create_doc()

        self.factory.xfer = DocumentShow()
        self.call('/lucterios.documents/documentShow', {"document": "3"},
                  False)
        self.assert_observer('core.exception', 'lucterios.documents',
                             'documentShow')
        self.assert_xml_equal('EXCEPTION/MESSAGE',
                              "Visualisation non autorisée !")

        self.factory.xfer = DocumentAddModify()
        self.call('/lucterios.documents/documentAddModify', {"document": "3"},
                  False)
        self.assert_observer('core.exception', 'lucterios.documents',
                             'documentAddModify')
        self.assert_xml_equal('EXCEPTION/MESSAGE',
                              "Visualisation non autorisée !")

        self.factory.xfer = DocumentDel()
        self.call('/lucterios.documents/documentDel', {"document": "3"}, False)
        self.assert_observer('core.exception', 'lucterios.documents',
                             'documentDel')
        self.assert_xml_equal('EXCEPTION/MESSAGE',
                              "Visualisation non autorisée !")
예제 #3
0
    def test_readonly(self):
        current_date = create_doc(self.factory.user)

        self.factory.xfer = DocumentShow()
        self.calljson('/lucterios.documents/documentShow', {"document": "6"}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'documentShow')
        self.assertEqual(self.json_meta['title'], "Afficher le document")
        self.assert_count_equal('', 9)
        self.assert_comp_equal(('LABELFORM', 'name'), "doc2.png", (1, 0, 2, 1))
        self.assert_comp_equal(('LABELFORM', 'parent'), ">truc1", (1, 1, 2, 1))
        self.assert_comp_equal(('LABELFORM', 'description'), "doc 2", (1, 2, 2, 1))
        self.assert_comp_equal(('LABELFORM', 'modifier'), None, (1, 3, 1, 1))
        self.assert_comp_equal(('LABELFORM', 'date_modification'), current_date.isoformat(), (2, 3, 1, 1), (0, 22))
        self.assert_comp_equal(('LABELFORM', 'creator'), "empty", (1, 4, 1, 1))
        self.assert_comp_equal(('LABELFORM', 'date_creation'), current_date.isoformat(), (2, 4, 1, 1), (0, 22))
        self.assertEqual(len(self.json_actions), 2)

        self.factory.xfer = DocumentAddModify()
        self.calljson('/lucterios.documents/documentAddModify', {"document": "6"}, False)
        self.assert_observer('core.exception', 'lucterios.documents', 'documentAddModify')
        self.assert_json_equal('', 'message', "Écriture non autorisée !")

        self.factory.xfer = ContainerDel()
        self.calljson('/lucterios.documents/containerDel', {"container": "6"}, False)
        self.assert_observer('core.exception', 'lucterios.documents', 'containerDel')
        self.assert_json_equal('', 'message', "Écriture non autorisée !")
예제 #4
0
    def test_saveagain(self):
        current_date = create_doc(self.factory.user)

        self.factory.xfer = DocumentShow()
        self.calljson('/lucterios.documents/documentShow', {"document": "5"}, False)
        self.assert_observer('core.custom', 'lucterios.documents', 'documentShow')
        self.assertEqual(self.json_meta['title'], "Afficher le document")
        self.assert_count_equal('', 9)
        self.assert_comp_equal(('LABELFORM', 'name'), "doc1.png", (1, 0, 2, 1))
        self.assert_comp_equal(('LABELFORM', 'parent'), ">truc2", (1, 1, 2, 1))
        self.assert_comp_equal(('LABELFORM', 'description'), "doc 1", (1, 2, 2, 1))
        self.assert_comp_equal(('LABELFORM', 'modifier'), None, (1, 3, 1, 1))
        self.assert_comp_equal(('LABELFORM', 'date_modification'), current_date.isoformat(), (2, 3, 1, 1), (0, 22))
        self.assert_comp_equal(('LABELFORM', 'creator'), "empty", (1, 4, 1, 1))
        self.assert_comp_equal(('LABELFORM', 'date_creation'), current_date.isoformat(), (2, 4, 1, 1), (0, 22))
        self.assertEqual(len(self.json_actions), 3)

        self.factory.xfer = DocumentAddModify()
        self.calljson('/lucterios.documents/documentAddModify', {'SAVE': 'YES', "document": "5", 'description': 'old doc', 'parent': 3}, False)
        self.assert_observer('core.acknowledge', 'lucterios.documents', 'documentAddModify')
        docs = DocumentContainer.objects.all().order_by('id')
        self.assertEqual(len(docs), 3)
        self.assertEqual(docs[0].id, 5)
        self.assertEqual(docs[0].parent.id, 3)
        self.assertEqual(docs[0].name, 'doc1.png')
        self.assertEqual(docs[0].description, "old doc")
        self.assertEqual(docs[0].creator.username, "empty")
        self.assertEqual(docs[0].modifier.username, "empty")
        self.assertNotEqual(docs[0].date_creation, docs[0].date_modification)
예제 #5
0
    def test_cannot_view(self):
        create_doc(self.factory.user)

        self.factory.xfer = DocumentShow()
        self.calljson('/lucterios.documents/documentShow', {"document": "7"}, False)
        self.assert_observer('core.exception', 'lucterios.documents', 'documentShow')
        self.assert_json_equal('', 'message', "Visualisation non autorisée !")

        self.factory.xfer = DocumentAddModify()
        self.calljson('/lucterios.documents/documentAddModify', {"document": "7"}, False)
        self.assert_observer('core.exception', 'lucterios.documents', 'documentAddModify')
        self.assert_json_equal('', 'message', "Visualisation non autorisée !")

        self.factory.xfer = ContainerDel()
        self.calljson('/lucterios.documents/containerDel', {"container": "7"}, False)
        self.assert_observer('core.exception', 'lucterios.documents', 'containerDel')
        self.assert_json_equal('', 'message', "Visualisation non autorisée !")
예제 #6
0
    def test_saveagain(self):
        current_date = self.create_doc()

        self.factory.xfer = DocumentShow()
        self.call('/lucterios.documents/documentShow', {"document": "1"},
                  False)
        self.assert_observer('core.custom', 'lucterios.documents',
                             'documentShow')
        self.assert_xml_equal('TITLE', "Afficher le document")
        self.assert_count_equal('COMPONENTS/*', 9)
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="folder"]',
                               ">truc2", (1, 0, 2, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="name"]',
                               "doc1.png", (1, 1, 2, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="description"]',
                               "doc 1", (1, 2, 2, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="modifier"]', '---',
                               (1, 3, 1, 1))
        self.assert_comp_equal(
            'COMPONENTS/LABELFORM[@name="date_modification"]',
            formats.date_format(current_date, "DATETIME_FORMAT"), (2, 3, 1, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="creator"]',
                               "empty", (1, 4, 1, 1))
        self.assert_comp_equal(
            'COMPONENTS/LABELFORM[@name="date_creation"]',
            formats.date_format(current_date, "DATETIME_FORMAT"), (2, 4, 1, 1))
        self.assert_count_equal('ACTIONS/ACTION', 2)

        self.factory.xfer = DocumentAddModify()
        self.call('/lucterios.documents/documentAddModify', {
            'SAVE': 'YES',
            "document": "1",
            'description': 'old doc'
        }, False)
        docs = Document.objects.all().order_by('id')
        self.assertEqual(len(docs), 3)
        self.assertEqual(docs[0].folder.id, 2)
        self.assertEqual(docs[0].name, 'doc1.png')
        self.assertEqual(docs[0].description, "old doc")
        self.assertEqual(docs[0].creator.username, "empty")
        self.assertEqual(docs[0].modifier.username, "empty")
        self.assertNotEqual(docs[0].date_creation, docs[0].date_modification)
예제 #7
0
    def test_readonly(self):
        current_date = self.create_doc()

        self.factory.xfer = DocumentShow()
        self.call('/lucterios.documents/documentShow', {"document": "2"},
                  False)
        self.assert_observer('core.custom', 'lucterios.documents',
                             'documentShow')
        self.assert_xml_equal('TITLE', "Afficher le document")
        self.assert_count_equal('COMPONENTS/*', 9)
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="folder"]',
                               ">truc1", (1, 0, 2, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="name"]',
                               "doc2.png", (1, 1, 2, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="description"]',
                               "doc 2", (1, 2, 2, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="modifier"]', '---',
                               (1, 3, 1, 1))
        self.assert_comp_equal(
            'COMPONENTS/LABELFORM[@name="date_modification"]',
            formats.date_format(current_date, "DATETIME_FORMAT"), (2, 3, 1, 1))
        self.assert_comp_equal('COMPONENTS/LABELFORM[@name="creator"]',
                               "empty", (1, 4, 1, 1))
        self.assert_comp_equal(
            'COMPONENTS/LABELFORM[@name="date_creation"]',
            formats.date_format(current_date, "DATETIME_FORMAT"), (2, 4, 1, 1))
        self.assert_count_equal('ACTIONS/ACTION', 1)

        self.factory.xfer = DocumentAddModify()
        self.call('/lucterios.documents/documentAddModify', {"document": "2"},
                  False)
        self.assert_observer('core.exception', 'lucterios.documents',
                             'documentAddModify')
        self.assert_xml_equal('EXCEPTION/MESSAGE', "Écriture non autorisée !")

        self.factory.xfer = DocumentDel()
        self.call('/lucterios.documents/documentDel', {"document": "2"}, False)
        self.assert_observer('core.exception', 'lucterios.documents',
                             'documentDel')
        self.assert_xml_equal('EXCEPTION/MESSAGE', "Écriture non autorisée !")