Esempio n. 1
0
    def test_get_filtered_list_task_assert_return_list(self):
        """ Test if the view return a list of filtered task """
        response = self.client.get(self.url + "?page__codex__slug=" +
                                   self.codex1.slug)

        self.assertEqual(len(response.data), 1)

        self.assertEqual(response.data[0]["id"], self.task1.id)
        self.assertEqual(response.data[0]["page"], self.page1.id)
        self.assertEqual(response.data[0]["text"], self.task1.text)
        self.assertEqual(response.data[0]["is_achieved"],
                         self.task1.is_achieved)
        self.assertEqual(
            response.data[0]["initial_hash"],
            java_string_hashcode(self.task1.text),
        )
        self.assertEqual(
            response.data[0]["achieved_date"],
            self.task1.achieved_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["creation_date"],
            self.task1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["update_date"],
            self.task1.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
    def test_get_list_information_not_codex_author_return_only_self_codex(
            self):
        """ Test if a user can list information of other user """
        other_user_name = "oz"
        self.connect_user(other_user_name)
        codex3 = self.empty_codex = Codex.objects.create(
            title="Test Codex 3",
            author=self.users[other_user_name],
            description="Description 3")
        information3 = Information.objects.create(text="Test Information 3",
                                                  codex=codex3)

        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 1)

        self.assertEqual(response.data[0]["id"], information3.id)
        self.assertEqual(response.data[0]["codex"], codex3.id)
        self.assertEqual(response.data[0]["text"], information3.text)
        self.assertEqual(response.data[0]["initial_hash"],
                         java_string_hashcode(information3.text))
        self.assertEqual(
            response.data[0]["creation_date"],
            information3.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["update_date"],
            information3.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
Esempio n. 3
0
    def test_get_list_note_not_codex_author_return_only_self_codex(self):
        """ Test if a user can list note of other user """
        other_user_name = "oz"
        self.connect_user(other_user_name)
        codex3 = Codex.objects.create(title="Test Codex 3",
                                      author=self.users[other_user_name],
                                      description="Description 3")
        page3 = Page.objects.create(codex=codex3)
        note3 = Note.objects.create(page=page3, text="Test Note 3")

        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 1)

        self.assertEqual(response.data[0]["id"], note3.id)
        self.assertEqual(response.data[0]["page"], page3.id)
        self.assertEqual(response.data[0]["text"], note3.text)
        self.assertEqual(
            response.data[0]["initial_hash"],
            java_string_hashcode(note3.text),
        )
        self.assertEqual(
            response.data[0]["creation_date"],
            note3.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["update_date"],
            note3.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
Esempio n. 4
0
 def validate_modification_hash(self, value):
   initial_hash = java_string_hashcode(
     getattr(self.instance, self.Meta.hash_field)
   )
   if initial_hash != value:
     raise serializers.ValidationError(
       gettext(
         "The {resource_name} have been modified since the last modification attempt."
       ).format(resource_name=self.Meta.model._meta.object_name)
     )
   return value
Esempio n. 5
0
    def test_post_note_assert_return_note(self):
        """ Test if the view return an note """
        response = self.client.post(self.url, self.data)

        self.assertEqual(len(response.data), 6)

        self.assertEqual(response.data["id"], 2)
        self.assertEqual(response.data["page"], 2)
        self.assertEqual(response.data["text"], self.data["text"])
        self.assertEqual(response.data["initial_hash"],
                         java_string_hashcode(self.data["text"]))
        self.assertIsNotNone(response.data["creation_date"])
        self.assertIsNotNone(response.data["update_date"])
Esempio n. 6
0
    def test_get_list_note_assert_return_list(self):
        """ Test if the view return a list of note """
        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 2)

        self.assertEqual(response.data[0]["id"], self.note1.id)
        self.assertEqual(response.data[0]["page"], self.page1.id)
        self.assertEqual(response.data[0]["text"], self.note1.text)
        self.assertEqual(
            response.data[0]["initial_hash"],
            java_string_hashcode(self.note1.text),
        )
        self.assertEqual(
            response.data[0]["creation_date"],
            self.note1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["update_date"],
            self.note1.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )

        self.assertEqual(response.data[1]["id"], self.note2.id)
        self.assertEqual(response.data[1]["page"], self.page2.id)
        self.assertEqual(response.data[1]["text"], self.note2.text)
        self.assertEqual(
            response.data[1]["initial_hash"],
            java_string_hashcode(self.note2.text),
        )
        self.assertEqual(
            response.data[1]["creation_date"],
            self.note2.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[1]["update_date"],
            self.note2.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
Esempio n. 7
0
    def test_put_note_assert_return_note(self):
        """ Test if the view return an note """
        response = self.client.put(self.url, self.data)

        self.assertEqual(len(response.data), 6)

        self.assertEqual(response.data["id"], self.note1.id)
        self.assertEqual(response.data["page"], self.page1.id)
        self.assertEqual(response.data["text"], self.data["text"])
        self.assertEqual(response.data["initial_hash"],
                         java_string_hashcode(self.data["text"]))
        self.assertEqual(
            response.data["creation_date"],
            self.note1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"))
        self.assertIsNotNone(response.data["update_date"])
Esempio n. 8
0
 def setUp(self):
     self.connect_default_user()
     self.codex1 = Codex.objects.create(title="Test Codex 1",
                                        author=self.default_user,
                                        description="Description 1")
     self.page1 = Page.objects.create(codex=self.codex1)
     self.note1 = Note.objects.create(text="Test note 1", page=self.page1)
     self.codex2 = Codex.objects.create(title="Test Codex 2",
                                        author=self.default_user,
                                        description="Description 2")
     self.page2 = Page.objects.create(codex=self.codex2)
     self.note2 = Note.objects.create(text="Test note 2", page=self.page2)
     self.url = reverse("note-detail", args=[1])
     self.data = {
         "text": "Test note 1 updated",
         "modification_hash": java_string_hashcode(self.note1.text),
     }
 def setUp(self):
     self.connect_default_user()
     self.codex1 = Codex.objects.create(title="Test Codex 1",
                                        author=self.default_user,
                                        description="Description 1")
     self.information1 = Information.objects.create(
         text="Test Information 1", codex=self.codex1)
     self.codex2 = Codex.objects.create(title="Test Codex 2",
                                        author=self.default_user,
                                        description="Description 2")
     self.information2 = Information.objects.create(
         text="Test Information 2", codex=self.codex2)
     self.url = reverse("information-detail", args=[1])
     self.data = {
         "text": "Test Information 1 updated",
         "modification_hash": java_string_hashcode(self.information1.text),
     }
Esempio n. 10
0
    def test_post_task_assert_return_task(self):
        """ Test if the view return a task """
        response = self.client.post(self.url, self.data)

        self.assertEqual(len(response.data), 8)

        self.assertEqual(response.data["id"], 2)
        self.assertEqual(response.data["page"], 2)
        self.assertEqual(response.data["text"], self.data["text"])
        self.assertEqual(str(response.data["is_achieved"]),
                         self.data["is_achieved"])
        self.assertEqual(
            response.data["initial_hash"],
            java_string_hashcode(self.data["text"]),
        )
        self.assertIsNotNone(response.data["achieved_date"])
        self.assertIsNotNone(response.data["creation_date"])
        self.assertIsNotNone(response.data["update_date"], )
Esempio n. 11
0
 def setUp(self):
     self.connect_default_user()
     self.codex1 = Codex.objects.create(title="Test Codex 1",
                                        author=self.default_user,
                                        description="Description 1")
     self.page1 = Page.objects.create(codex=self.codex1)
     self.task1 = Task.objects.create(text="Test task 1", page=self.page1)
     self.codex2 = Codex.objects.create(title="Test Codex 2",
                                        author=self.default_user,
                                        description="Description 2")
     self.page2 = Page.objects.create(codex=self.codex2)
     self.task2 = Task.objects.create(text="Test task 2", page=self.page2)
     self.url = reverse("task-detail", args=[1])
     self.data = {
         "text": "Test task 1 updated",
         "is_achieved": "True",
         "modification_hash": java_string_hashcode(self.task1.text),
     }
    def test_get_detail_information_assert_return_information(self):
        """ Test if the view return a unique of codex information """
        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 6)

        self.assertEqual(response.data["id"], self.information1.id)
        self.assertEqual(response.data["codex"], self.codex.id)
        self.assertEqual(response.data["text"], self.information1.text)
        self.assertEqual(response.data["initial_hash"],
                         java_string_hashcode(self.information1.text))
        self.assertEqual(
            response.data["creation_date"],
            self.information1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data["update_date"],
            self.information1.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
Esempio n. 13
0
    def test_get_detail_note_assert_return_codex(self):
        """ Test if the view return a unique note """
        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 6)

        self.assertEqual(response.data["id"], self.note.id)
        self.assertEqual(response.data["page"], self.page.id)
        self.assertEqual(response.data["text"], self.note.text)
        self.assertEqual(
            response.data["initial_hash"],
            java_string_hashcode(self.note.text),
        )
        self.assertEqual(
            response.data["creation_date"],
            self.note.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data["update_date"],
            self.note.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
    def test_get_filtered_list_information_assert_return_list(self):
        """ Test if the view return a list of filtered codex information """
        response = self.client.get(self.url + "?codex__slug=" +
                                   self.codex1.slug)

        self.assertEqual(len(response.data), 1)

        self.assertEqual(response.data[0]["id"], self.information1.id)
        self.assertEqual(response.data[0]["codex"], self.codex1.id)
        self.assertEqual(response.data[0]["text"], self.information1.text)
        self.assertEqual(
            response.data[0]["initial_hash"],
            java_string_hashcode(self.information1.text),
        )
        self.assertEqual(
            response.data[0]["creation_date"],
            self.information1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["update_date"],
            self.information1.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
Esempio n. 15
0
    def test_get_detail_task_assert_return_task(self):
        """ Test if the view return a unique task """
        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 8)

        self.assertEqual(response.data["id"], self.task.id)
        self.assertEqual(response.data["page"], self.page.id)
        self.assertEqual(response.data["text"], self.task.text)
        self.assertEqual(response.data["is_achieved"], self.task.is_achieved)
        self.assertEqual(
            response.data["initial_hash"],
            java_string_hashcode(self.task.text),
        )
        self.assertIsNone(response.data["achieved_date"])
        self.assertEqual(
            response.data["creation_date"],
            self.task.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data["update_date"],
            self.task.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
Esempio n. 16
0
    def test_get_list_task_assert_return_list(self):
        """ Test if the view return a list of task """
        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 3)

        self.assertEqual(response.data[0]["id"], self.task1.id)
        self.assertEqual(response.data[0]["page"], self.page1.id)
        self.assertEqual(response.data[0]["text"], self.task1.text)
        self.assertEqual(response.data[0]["is_achieved"],
                         self.task1.is_achieved)
        self.assertEqual(
            response.data[0]["initial_hash"],
            java_string_hashcode(self.task1.text),
        )
        self.assertEqual(
            response.data[0]["achieved_date"],
            self.task1.achieved_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["creation_date"],
            self.task1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[0]["update_date"],
            self.task1.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )

        self.assertEqual(response.data[1]["id"], self.task2.id)
        self.assertEqual(response.data[1]["page"], self.page2.id)
        self.assertEqual(response.data[1]["text"], self.task2.text)
        self.assertEqual(response.data[1]["is_achieved"],
                         self.task2.is_achieved)
        self.assertEqual(
            response.data[1]["initial_hash"],
            java_string_hashcode(self.task2.text),
        )
        self.assertIsNone(response.data[1]["achieved_date"])
        self.assertEqual(
            response.data[1]["creation_date"],
            self.task2.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[1]["update_date"],
            self.task2.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )

        self.assertEqual(response.data[2]["id"], self.task3.id)
        self.assertEqual(response.data[2]["page"], self.page2.id)
        self.assertEqual(response.data[2]["text"], self.task3.text)
        self.assertEqual(response.data[2]["is_achieved"],
                         self.task3.is_achieved)
        self.assertEqual(
            response.data[2]["initial_hash"],
            java_string_hashcode(self.task3.text),
        )
        self.assertIsNone(response.data[2]["achieved_date"])
        self.assertEqual(
            response.data[2]["creation_date"],
            self.task3.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
        self.assertEqual(
            response.data[2]["update_date"],
            self.task3.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )
Esempio n. 17
0
    def test_get_list_page_assert_return_list(self):
        """ Test if the view return a list of page """
        response = self.client.get(self.url)

        self.assertEqual(len(response.data), 2)

        self.assertEqual(response.data[0]["id"], self.page1.id)
        self.assertEqual(response.data[0]["codex"], self.codex1.id)
        self.assertGreaterEqual(
            self.page1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[0]["creation_date"],
        )
        self.assertGreaterEqual(
            self.page1.date.strftime("%Y-%m-%d"),
            response.data[0]["date"],
        )
        self.assertGreaterEqual(
            response.data[0]["nested_update_date"],
            self.page1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
        )

        self.assertEqual(response.data[0]["note"]["id"], self.note1.id)
        self.assertEqual(response.data[0]["note"]["page"], self.page1.id)
        self.assertEqual(response.data[0]["note"]["text"], self.note1.text)
        self.assertEqual(
            response.data[0]["note"]["initial_hash"],
            java_string_hashcode(self.note1.text),
        )
        self.assertGreaterEqual(
            self.note1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[0]["note"]["creation_date"],
        )
        self.assertGreaterEqual(
            self.note1.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[0]["note"]["update_date"],
        )

        self.assertEqual(len(response.data[0]["tasks"]), 2)

        self.assertEqual(response.data[0]["tasks"][0]["id"], self.task1.id)
        self.assertEqual(response.data[0]["tasks"][0]["page"], self.page1.id)
        self.assertEqual(response.data[0]["tasks"][0]["text"], self.task1.text)
        self.assertEqual(response.data[0]["tasks"][0]["is_achieved"],
                         self.task1.is_achieved)
        self.assertEqual(
            response.data[0]["tasks"][0]["initial_hash"],
            java_string_hashcode(self.task1.text),
        )
        self.assertIsNone(response.data[0]["tasks"][0]["achieved_date"])
        self.assertGreaterEqual(
            self.task1.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[0]["tasks"][0]["creation_date"],
        )
        self.assertGreaterEqual(
            self.task1.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[0]["tasks"][0]["update_date"],
        )
        self.assertEqual(response.data[0]["tasks"][1]["id"], self.task2.id)
        self.assertEqual(response.data[0]["tasks"][1]["page"], self.page1.id)
        self.assertEqual(response.data[0]["tasks"][1]["text"], self.task2.text)
        self.assertEqual(response.data[0]["tasks"][1]["is_achieved"],
                         self.task2.is_achieved)
        self.assertEqual(
            response.data[0]["tasks"][1]["initial_hash"],
            java_string_hashcode(self.task2.text),
        )
        self.assertIsNone(response.data[0]["tasks"][1]["achieved_date"])
        self.assertGreaterEqual(
            self.task2.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[0]["tasks"][1]["creation_date"],
        )
        self.assertEqual(
            self.task2.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[0]["tasks"][1]["update_date"],
        )

        self.assertEqual(response.data[1]["id"], self.page2.id)
        self.assertEqual(response.data[1]["codex"], self.codex2.id)
        self.assertGreaterEqual(
            self.page2.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[1]["creation_date"],
        )
        self.assertGreaterEqual(
            self.page2.date.strftime("%Y-%m-%d"),
            response.data[1]["date"],
        )
        self.assertGreaterEqual(
            self.page2.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[1]["nested_update_date"],
        )

        self.assertEqual(response.data[1]["note"]["id"], self.note2.id)
        self.assertEqual(response.data[1]["note"]["page"], self.page2.id)
        self.assertEqual(response.data[1]["note"]["text"], self.note2.text)
        self.assertEqual(
            response.data[1]["note"]["initial_hash"],
            java_string_hashcode(self.note2.text),
        )
        self.assertGreaterEqual(
            self.note2.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[1]["note"]["creation_date"],
        )
        self.assertGreaterEqual(
            self.note2.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[1]["note"]["update_date"],
        )

        self.assertEqual(len(response.data[1]["tasks"]), 1)

        self.assertEqual(response.data[1]["tasks"][0]["id"], self.task3.id)
        self.assertEqual(response.data[1]["tasks"][0]["page"], self.page2.id)
        self.assertEqual(response.data[1]["tasks"][0]["text"], self.task3.text)
        self.assertEqual(response.data[1]["tasks"][0]["is_achieved"],
                         self.task3.is_achieved)
        self.assertEqual(
            response.data[1]["tasks"][0]["initial_hash"],
            java_string_hashcode(self.task3.text),
        )
        self.assertIsNone(response.data[1]["tasks"][0]["achieved_date"])
        self.assertGreaterEqual(
            self.task3.creation_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[1]["tasks"][0]["creation_date"],
        )
        self.assertGreaterEqual(
            self.task3.update_date.strftime("%Y-%m-%dT%H:%M:%SZ"),
            response.data[1]["tasks"][0]["update_date"],
        )
Esempio n. 18
0
 def get_initial_hash(self, obj):
   return java_string_hashcode(getattr(obj, self.Meta.hash_field))