Как проверить в Django, находится ли логика поиска базы данных в представлении - PullRequest
0 голосов
/ 08 ноября 2018

Я использую Django и две базы данных, а именно NDB и SQlite для различных целей. Я прошел тестирование по темам в django, они говорят создать базу данных в тесте и вызвать представление / функцию для этого объекта.

Мой сценарий другой. У меня есть логика базы данных, сидящая в моей функции / представлении для проверки. Поэтому я не могу создать тестовую базу данных и тестовую тестовую функцию.

Мой взгляд

class NewsFeedViewSet(viewsets.ViewSet):
lookup_field = 'username'

def retrieve(self, request , username=None):
    user_and_followers_list=[]
    posts_list = []
    post_dict = {}
    ancestor_key = ndb.Key(Follow, username)
    user_followers = Follow.query_followers(ancestor_key)
    for followers in user_followers:
        user_and_followers_list.append(str(followers.following))

    user_and_followers_list.append(str(username))
    posts = Post.query(Post.owner.IN(user_and_followers_list), Post.date < time_stamp).fetch(100)
    for p in posts:
        post_dict = p.to_dict()
        posts_list.append(post_dict)

    users = User.objects.filter(username__in=user_and_followers_list)
    for post in posts_list:
        user = users.get(username=post['owner'])
        serializer = UserSerializer(user)
        post['user'] = serializer.data
    posts_list = sorted(posts_list, key=lambda k: k['date'], reverse=True)
    global time_stamp
    if len(posts_list) > 0:
        time_stamp = posts_list[len(posts_list)-1]['date']
    return Response(posts_list)   

Есть ли какой-нибудь способ попасть в мою производственную базу данных и запустить мой сервер во время тестирования? Или любой другой и эффективный подход, с которым я мог бы пойти?

...