예제 #1
0
    def test_get_requests_filtered_by_category(self):
        add_category("Jogos")
        add_request(
            "Jogo da vida",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um jogo da vida emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )
        add_request(
            "War",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um war emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )

        with self.client:
            response = self.client.get(
                f"{REQUEST_BASE_URL}/available/1?usermail={FAKE_EMAIL}")
            data = json.loads(response.data.decode())

            self.assertEqual(response.status_code, 200)
            self.assertIn("success", data["status"])

            self.assertIn("Jogo da vida",
                          data["data"]["requests"][0]["productname"])
            self.assertIn("War", data["data"]["requests"][1]["productname"])
예제 #2
0
    def test_get_all_requests_lender(self):
        add_category("Eletrodomésticos")
        add_request(
            "Jogo da vida",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um jogo da vida emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
            lender="*****@*****.**",
        )
        add_request(
            "War",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um war emprestado para jogar com meus amigos neste fim de semana!",
            "*****@*****.**",
            1,
            lender="*****@*****.**",
        )

        with self.client:
            response = self.client.get(
                f"{REQUEST_BASE_URL}[email protected]")
            data = json.loads(response.data.decode())

            self.assertEqual(response.status_code, 200)
            self.assertIn("success", data["status"])

            self.assertEqual(len(data["data"]["requests"]), 1)
예제 #3
0
    def test_edit_request(self):
        add_category("Eletrodomésticos")
        request = add_request(
            "Uno",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            FAKE_DESCRIPTION,
            FAKE_EMAIL,
            1,
        )

        with self.client:
            response = self.client.put(
                f"{REQUEST_BASE_URL}/{request.requestid}",
                data=json.dumps({
                    "productname": "Uno",
                    "startdate": FAKE_STARTDATE,
                    "enddate": FAKE_ENDDATE,
                    "description": FAKE_DESCRIPTION,
                    "requester": FAKE_EMAIL,
                    "productcategoryid": 1,
                    "lender": None,
                }),
                content_type="application/json",
            )

            data = json.loads(response.data.decode())

            self.assertEqual(response.status_code, 201)
            self.assertIn("Update completed!", data["data"]["update_status"])
            self.assertIn("success", data["status"])
예제 #4
0
    def test_get_all_requests(self):
        add_category("Eletrodomésticos")
        add_request(
            "Banco Imobiliario",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um banco imobiliário emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )
        add_request(
            "Jogo da vida",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um jogo da vida emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )
        add_request(
            "War",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um war emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )

        with self.client:
            response = self.client.get(REQUEST_BASE_URL)
            data = json.loads(response.data.decode())

            self.assertEqual(response.status_code, 200)
            self.assertIn("success", data["status"])

            self.assertEqual(len(data["data"]["requests"]), 3)
예제 #5
0
    def test_not_available_requests(self):
        add_category("Eletrodomésticos")
        add_request(
            "Banco Imobiliario",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um banco imobiliário emprestado para jogar com meus amigos neste fim de semana!",
            "*****@*****.**",
            1,
        )
        add_request(
            "Jogo da vida",
            FAKE_STARTDATE,
            "2021-01-30 00:00:00.000",
            "Queria um jogo da vida emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )
        add_request(
            "War",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um war emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
            lender="*****@*****.**",
        )

        with self.client:
            response = self.client.get(
                f"{REQUEST_BASE_URL}/available?usermail={FAKE_EMAIL}")
            data = json.loads(response.data.decode())

            self.assertEqual(response.status_code, 404)
            self.assertIn("fail", data["status"])
예제 #6
0
    def test_finalize_request(self):
        add_category("Eletrodomésticos")
        product = add_request(
            "Banco Imobiliario",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um banco imobiliário emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )

        with self.client:
            response = self.client.patch(
                f"{REQUEST_BASE_URL}/{product.requestid}/finalize",
                content_type="application/json",
            )

            data = json.loads(response.data.decode())
            self.assertEqual(data["request"]["finalized"], True)
예제 #7
0
    def test_delete_request(self):
        add_category("Eletrodomésticos")
        request = add_request(
            "Uno",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            FAKE_DESCRIPTION,
            FAKE_EMAIL,
            1,
        )

        with self.client:
            response = self.client.delete(
                f"{REQUEST_BASE_URL}/{request.requestid}")

            data = json.loads(response.data.decode())

            self.assertEqual(response.status_code, 200)
            self.assertIn("Request deleted!", data["data"]["message"])
            self.assertIn("success", data["status"])
예제 #8
0
    def test_update_lender_request(self):
        add_category("Eletrodomésticos")
        product = add_request(
            "Banco Imobiliario",
            FAKE_STARTDATE,
            FAKE_ENDDATE,
            "Queria um banco imobiliário emprestado para jogar com meus amigos neste fim de semana!",
            FAKE_REQUESTER,
            1,
        )

        with self.client:
            response = self.client.patch(
                f"{REQUEST_BASE_URL}/{product.requestid}",
                data=json.dumps({"lender": "*****@*****.**"}),
                content_type="application/json",
            )

            data = json.loads(response.data.decode())
            self.assertIn("*****@*****.**", data["request"]["lender"])