Получение AttributeError: у объекта «TestRoutes» нет атрибута «приложение» - PullRequest
0 голосов
/ 30 июня 2019

Код, приведенный ниже, является модульным тестом, который я пишу для приложения для колб, но при запуске теста возникает следующая ошибка:

  File "/Users/ausername/projects/term_trader/tt2/tests/testRoutes.py", line 47, in test_deposit_route
    response = self.app.post(BASE_URL,
AttributeError: 'TestRoutes' object has no attribute 'app'

Импорт выглядит хорошо для меня, так как у меня закончились некоторые другие тестыпапки «тесты» без проблем.Сами маршруты отлично работают, когда я тестирую их в curl, я просто пытаюсь привыкнуть писать тесты.Просто не могу понять, в чем проблема.Это версия колбы 1.0.3.Любой совет приветствуется.

Код:

from unittest import TestCase
from model.user import User
from model.position import Position
from model.trade import Trade
from flask_app.app import app
from schema import build_user, build_positions, build_trades
import json
import os


BASE_URL = 'http://localhost:5000/api/'


class TestRoutes(TestCase):

    def setup(self):
        self.app.config['TESTING'] = True
        self.app.config['DEBUG'] = False
        self.app = app.test_client()

        build_user()
        build_positions()
        build_trades()

        bob = User(**{
        "user_name": "bobdean",
        "password": "password",
        "real_name": "Bob Dean",
        "balance": 0.0
        })
        bob.hash_password("password")
        bob.api_key = "11111111111111111111"
        bob.save()

    def tearDown(self):
        pass

    def test_deposit_route(self):
        bob = User.from_pk(1)
        self.assertEqual(mike.user_name, "bobdean")
        deposit = {"amount":1500.0}
        response = self.app.post(BASE_URL,
                                 data=json.dumps(deposit),
                                 content_type='application/json')
        self.assertEqual(response.status_code, 201, "Status Code should be 201")
        self.assertEqual(bob.balance, 1500.0, "Bob's balance should equal 1500")

1 Ответ

1 голос
/ 30 июня 2019

Вам необходимо переименовать настройки в setUp согласно документации

...