11from tests .conftest import client
2- from tests import db , Project
2+ from tests import db , Project , ProjectLink
3+ from tests .api import create_project_for_test_cases , create_project_link_for_test_cases
34
4- from tests .api import create_project_for_test_cases
55class TestProjectView (object ):
66
77 valid_data = {
@@ -37,11 +37,35 @@ def test_delete_project(self, client):
3737 response = client .delete ('/projects/0' )
3838 assert response .status_code == 404
3939
40- # project_id = self.create_project_for_test_cases()
41- # response = client.delete('/project/{}'.format(project_id))
42- # assert response.status_code == 202
40+ project1 = create_project_for_test_cases (self .valid_data )
41+
42+ self .valid_data ["name" ] = "p2 name"
43+ project2 = create_project_for_test_cases (self .valid_data )
44+
45+ response = client .delete ('/projects/{}' .format (project1 ["id" ]))
46+ assert response .status_code == 202
47+
48+ def test_get_project (self , client ):
49+ response = client .get ('/projects/{}' .format (0 ))
50+ assert response .status_code == 404
4351
44- def test_create_porject_link (self , client ):
52+ project = create_project_for_test_cases (self .valid_data )
53+ response = client .get ('/projects/{}' .format (project ["id" ]))
54+ assert response .status_code == 200
55+ assert response .get_json ()["name" ] == project ["name" ]
56+
57+ def test_get_all_projects (self , client ):
58+ project1 = create_project_for_test_cases (self .valid_data )
59+
60+ self .valid_data ["name" ] = "allproject2"
61+ project2 = create_project_for_test_cases (self .valid_data )
62+ response = client .get ('/projects' )
63+
64+ assert response .status_code == 200
65+ r = response .get_json ()
66+ assert [r [0 ]["name" ], r [1 ]["name" ]] == [project1 ["name" ], project2 ["name" ]]
67+
68+ def test_create_project_link (self , client ):
4569 project = create_project_for_test_cases (self .valid_data )
4670 url = '/projects/{}/links' .format (project ["id" ])
4771
@@ -50,3 +74,72 @@ def test_create_porject_link(self, client):
5074
5175 response = client .post (url , json = {"name" : "Main link" , "url" : "http://main.link" })
5276 assert response .status_code == 201
77+
78+ def test_update_project_link (self , client ):
79+ p1 = create_project_for_test_cases (self .valid_data )
80+ p1_link = create_project_link_for_test_cases (
81+ {
82+ "name" : "Plink" ,
83+ "url" : "https://xll.com" ,
84+ "project_id" : p1 ["id" ]
85+ })
86+
87+ url = '/projects/{0}/links/{1}'
88+
89+ # notice: this shouldn't give 500 error
90+ # response = client.post(url.format(p1["id"], 0))
91+ # assert response.status_code == 404
92+
93+ # notice: this shouldn't give 500 error
94+ # response = client.post(url.format(0, p1_link["id"]))
95+ # assert response.status_code == 404
96+
97+ response = client .post (url .format (p1 ["id" ], p1_link ["id" ]), json = {"name" : "Nlink" })
98+ assert response .status_code == 200
99+ assert response .get_json ()["name" ] == "Nlink"
100+
101+ def test_get_all_project_links (self , client ):
102+ p1 = create_project_for_test_cases (self .valid_data )
103+ p_link1 = create_project_link_for_test_cases (
104+ {
105+ "name" : "Plink" ,
106+ "url" : "https://xll.com" ,
107+ "project_id" : p1 ["id" ]
108+ })
109+ p_link2 = create_project_link_for_test_cases (
110+ {
111+ "name" : "Other" ,
112+ "url" : "https://pp.com" ,
113+ "project_id" : p1 ["id" ]
114+ })
115+
116+ response = client .get ('/projects/{}/links' .format (p1 ["id" ]))
117+ assert response .status_code == 200
118+ assert response .get_json () == [p_link1 , p_link2 ]
119+
120+ def test_delete_project_link (self , client ):
121+ url = '/projects/{0}/links/{1}'
122+
123+ response = client .delete (url .format (0 , 0 ))
124+ assert response .status_code == 404
125+
126+ p1 = create_project_for_test_cases (self .valid_data )
127+ p_link1 = create_project_link_for_test_cases (
128+ {
129+ "name" : "Plink" ,
130+ "url" : "https://xll.com" ,
131+ "project_id" : p1 ["id" ]
132+ })
133+ p_link2 = create_project_link_for_test_cases (
134+ {
135+ "name" : "Other" ,
136+ "url" : "https://pp.com" ,
137+ "project_id" : p1 ["id" ]
138+ })
139+
140+
141+ response = client .delete (url .format (p1 ["id" ], p_link1 ["id" ]))
142+ assert response .status_code == 200
143+ items = ProjectLink .query .all ()
144+ assert len (items ) == 1
145+ assert items [0 ].name == "Other"
0 commit comments