11import email
22import json
3-
43import pytest
4+ import logging
55
66# from app.routers import posts
77from app .routers import auth
8+ import app .oauth2
9+ from db .orm import models
810import tests .debug
911import schemas .post
1012
13+ logger = logging .getLogger (__name__ )
1114
1215def setup_module ():
1316 tests .debug .DEBUG = False
1417
15- def test_get_all_posts (authorized_client , add_fake_posts_db ):
18+ def test_get_all_posts (authorized_client , add_fake_posts_db_userid1 ):
1619 response = authorized_client .get ('/posts' )
1720 assert response .status_code == 200
1821 # posts = [schemas.post.PostOut(**post) for post in response.json()]
1922 # [print(post) for post in posts]
2023 # posts = response.json()
2124 print (json .dumps (response .json (), indent = 2 ))
2225 posts = [schemas .post .Post (** post .get ('Post' )) for post in response .json ()]
23- assert len (posts ) == len (add_fake_posts_db )
24- for post , dbpost in zip (posts , add_fake_posts_db ):
26+ assert len (posts ) == len (add_fake_posts_db_userid1 )
27+ for post , dbpost in zip (posts , add_fake_posts_db_userid1 ):
2528 assert post .id == dbpost .id
2629 assert post .title == dbpost .title
2730 assert post .content == dbpost .content
2831 assert post .published == dbpost .published
2932 assert post .created_at == dbpost .created_at
3033 assert post .owner_id == dbpost .owner_id
3134
32- def test_unauthorized_get_all_posts (unauthorized_client , add_fake_posts_db ):
35+ def test_unauthorized_get_all_posts (unauthorized_client , add_fake_posts_db_userid1 ):
3336 response = unauthorized_client .get ('/posts' )
3437 assert response .status_code == 401
3538
36- def test_unauthorized_get_one_post (unauthorized_client , add_fake_posts_db ):
37- response = unauthorized_client .get (f'/posts/{ add_fake_posts_db [0 ].id } ' )
39+ def test_unauthorized_get_one_post (unauthorized_client , add_fake_posts_db_userid1 ):
40+ response = unauthorized_client .get (f'/posts/{ add_fake_posts_db_userid1 [0 ].id } ' )
3841 assert response .status_code == 401
3942
40- def test_get_one_posts_not_exist (authorized_client , add_fake_posts_db ):
43+ def test_get_one_posts_not_exist (authorized_client , add_fake_posts_db_userid1 ):
4144 response = authorized_client .get (
4245 f'/posts/-1' )
4346 assert response .status_code == 404
4447
45- def test_get_one_post (authorized_client , add_fake_posts_db ):
46- response = authorized_client .get (f'/posts/{ add_fake_posts_db [0 ].id } ' )
48+ def test_get_one_post (authorized_client , add_fake_posts_db_userid1 ):
49+ response = authorized_client .get (f'/posts/{ add_fake_posts_db_userid1 [0 ].id } ' )
4750 assert response .status_code == 200
4851 post = schemas .post .Post (** response .json ())
49- assert post .id == add_fake_posts_db [0 ].id
52+ assert post .id == add_fake_posts_db_userid1 [0 ].id
5053
5154@pytest .mark .parametrize (
5255 'title, content, published' ,
@@ -58,8 +61,8 @@ def test_get_one_post(authorized_client, add_fake_posts_db):
5861)
5962def test_create_post (
6063 authorized_client ,
61- add_user_db ,
62- add_fake_posts_db ,
64+ add_user_db_id1 ,
65+ add_fake_posts_db_userid1 ,
6366 title ,
6467 content ,
6568 published
@@ -77,8 +80,8 @@ def test_create_post(
7780 assert post .title == title
7881 assert post .content == content
7982 assert post .published == published
80- assert post .owner_id == add_user_db .id
81- assert post .owner .email == add_user_db .email
83+ assert post .owner_id == add_user_db_id1 .id
84+ assert post .owner .email == add_user_db_id1 .email
8285
8386@pytest .mark .parametrize (
8487 'title, content' ,
@@ -90,8 +93,8 @@ def test_create_post(
9093)
9194def test_create_post_default_published_true (
9295 authorized_client ,
93- add_user_db ,
94- add_fake_posts_db ,
96+ add_user_db_id1 ,
97+ add_fake_posts_db_userid1 ,
9598 title ,
9699 content ,
97100):
@@ -107,8 +110,8 @@ def test_create_post_default_published_true(
107110 assert post .title == title
108111 assert post .content == content
109112 assert post .published == True
110- assert post .owner_id == add_user_db .id
111- assert post .owner .email == add_user_db .email
113+ assert post .owner_id == add_user_db_id1 .id
114+ assert post .owner .email == add_user_db_id1 .email
112115
113116def test_unauthorized_create_post (unauthorized_client ):
114117 response = unauthorized_client .post (
@@ -120,17 +123,29 @@ def test_unauthorized_create_post(unauthorized_client):
120123 )
121124 assert response .status_code == 401
122125
123- def test_unauthorized_delete_post (unauthorized_client , add_fake_posts_db ):
124- response = unauthorized_client .delete (f'/posts/{ add_fake_posts_db [0 ].id } ' )
126+ def test_unauthorized_delete_post (unauthorized_client , add_fake_posts_db_userid1 ):
127+ response = unauthorized_client .delete (f'/posts/{ add_fake_posts_db_userid1 [0 ].id } ' )
125128 assert response .status_code == 401
126129
127- def test_delete_post (authorized_client , add_fake_posts_db ):
128- response = authorized_client .delete (f'/posts/{ add_fake_posts_db [0 ].id } ' )
130+ def test_delete_post (authorized_client , add_fake_posts_db_userid1 ):
131+ response = authorized_client .delete (f'/posts/{ add_fake_posts_db_userid1 [0 ].id } ' )
129132 assert response .status_code == 204
130133
131- def test_delete_post_not_exist (authorized_client , add_fake_posts_db ):
134+ def test_delete_post_not_exist (authorized_client , add_fake_posts_db_userid1 ):
132135 response = authorized_client .delete (f'/posts/-1' )
133136 assert response .status_code == 404
134137
135- def test_delete_owned_post (authorized_client , add_users_db , add_fake_posts_db ):
136- pass
138+ def test_delete_owned_post (authorized_client , token , session , add_fake_posts_db_multiple_users ):
139+ tokendata = app .oauth2 .verify_access_token (token , app .oauth2 .unhautorized_exception )
140+ post : models .Post = (
141+ session .query (models .Post )
142+ .filter (models .Post .owner_id == tokendata .id )
143+ .first ()
144+ )
145+ logger .info (post .content )
146+ response = authorized_client .delete (f'posts/{ post .id } ' )
147+ assert response .status_code == 204
148+ # posts = session.query(models.Post).all()
149+ # assert len(posts) == 2
150+ check = session .query (models .Post ).filter (models .Post .id == post .id ).first ()
151+ assert check is None
0 commit comments