From f0babf164d96975972562e4b00483de9614852a3 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Aug 23 2018 11:55:12 +0000 Subject: Fix the unit-tests for the new user's public page Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/ui/app.py b/pagure/ui/app.py index dcdd27a..a03a31d 100644 --- a/pagure/ui/app.py +++ b/pagure/ui/app.py @@ -644,6 +644,7 @@ def get_userprofile_common(user): return userprofile_counts + @UI_NS.route('/user//') @UI_NS.route('/user/') def view_user(username): @@ -707,7 +708,7 @@ def userprofile_projects(username): userprofile_common = get_userprofile_common(user) total_page_repos = int( - ceil(userprofile_common['repos_length'] / float(limit))) + ceil(userprofile_common['repos_length'] / float(limit))) return flask.render_template( 'userprofile_projects.html', @@ -721,6 +722,7 @@ def userprofile_projects(username): select="projects", ) + @UI_NS.route('/user//forks/') @UI_NS.route('/user//forks') def userprofile_forks(username): @@ -749,7 +751,7 @@ def userprofile_forks(username): userprofile_common = get_userprofile_common(user) total_page_forks = int( - ceil(userprofile_common['forks_length'] / float(limit))) + ceil(userprofile_common['forks_length'] / float(limit))) return flask.render_template( 'userprofile_forks.html', @@ -915,6 +917,7 @@ def userprofile_starred(username): select="starred", ) + @UI_NS.route('/user//groups/') @UI_NS.route('/user//groups') def userprofile_groups(username): diff --git a/tests/test_pagure_flask_api_ui_private_repo.py b/tests/test_pagure_flask_api_ui_private_repo.py index 18d513d..86c2f68 100644 --- a/tests/test_pagure_flask_api_ui_private_repo.py +++ b/tests/test_pagure_flask_api_ui_private_repo.py @@ -437,10 +437,26 @@ class PagurePrivateRepotest(tests.Modeltests): output = self.app.get('/user/foo?repopage=abc&forkpage=def') self.assertEqual(output.status_code, 200) self.assertIn( - 'Projects 0', + """ + + Projects  + +
+ + 0 + +
""", output.get_data(as_text=True)) self.assertIn( - 'Forks 0', + """ + + Forks  + +
+ + 0 + +
""", output.get_data(as_text=True)) # Add a private project @@ -471,40 +487,101 @@ class PagurePrivateRepotest(tests.Modeltests): output = self.app.get('/user/foo') self.assertEqual(output.status_code, 200) self.assertIn( - 'Projects 1', + """ + + Projects  + +
+ + 1 + +
""", output.get_data(as_text=True)) self.assertIn( - 'Forks 0', output.get_data(as_text=True)) + """ + + Forks  + +
+ + 0 + +
""", + output.get_data(as_text=True)) user = tests.FakeUser(username='foo') with tests.user_set(self.app.application, user): output = self.app.get('/user/foo') output_text = output.get_data(as_text=True) self.assertIn( - 'Projects 2', + """ + + Projects  + +
+ + 1 + +
""", output_text) self.assertIn( - 'Forks 0', + """ + + Forks  + +
+ + 0 + +
""", output_text) - self.assertEqual( - output_text.count('

No group found

'), 1) - self.assertEqual( - output_text.count('
'), 3) + self.assertIn( + """ + + Groups  + +
+ + 0 + +
""", output_text) user.username = 'pingou' with tests.user_set(self.app.application, user): output = self.app.get('/user/foo') output_text = output.get_data(as_text=True) self.assertIn( - 'Projects 1', + """ + + Projects  + +
+ + 1 + +
""", output_text) self.assertIn( - 'Forks 0', + """ + + Forks  + +
+ + 0 + +
""", output_text) - self.assertEqual( - output_text.count('

No group found

'), 1) - self.assertEqual( - output_text.count('
'), 3) + self.assertIn( + """ + + Groups  + +
+ + 0 + +
""", output_text) # Check pingou has 0 projects user.username = 'pingou' @@ -751,16 +828,47 @@ class PagurePrivateRepotest(tests.Modeltests): if not os.path.exists(repo_path): os.makedirs(repo_path) pygit2.init_repository(repo_path, bare=True) - # Check repo was created + # Check repo was created - Doesn't show on the public page user = tests.FakeUser(username='pingou') with tests.user_set(self.app.application, user): output = self.app.get('/user/pingou/') self.assertEqual(output.status_code, 200) self.assertIn( - '
\n Projects 1', output.get_data(as_text=True)) + """ + + Projects  + +
+ + 0 + +
""", + output.get_data(as_text=True)) + self.assertIn( + """ + + Forks  + +
+ + 0 + +
""", + output.get_data(as_text=True)) + + # Shows on the front page + output = self.app.get('/dashboard/projects') + self.assertEqual(output.status_code, 200) self.assertIn( - 'Forks 0', + """ + + Projects  + +
+ + 1 + +
""", output.get_data(as_text=True)) self.set_up_git_repo(new_project=None, branch_from='feature') diff --git a/tests/test_pagure_flask_ui_app.py b/tests/test_pagure_flask_ui_app.py index fca5ba8..1745da9 100644 --- a/tests/test_pagure_flask_ui_app.py +++ b/tests/test_pagure_flask_ui_app.py @@ -83,13 +83,27 @@ class PagureFlaskApptests(tests.Modeltests): self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Projects 3', - output_text) - self.assertIn( - 'page 1 of 2', output_text) - self.assertEqual(output_text.count('class="repo_descripton"'), 2) + """ + + Projects  + +
+ + 3 + +
""", + output_text) self.assertIn( - 'Forks 0', output_text) + """ + + Forks  + +
+ + 0 + +
""", + output_text) def test_view_user(self): """ Test the view_user endpoint. """ @@ -98,10 +112,26 @@ class PagureFlaskApptests(tests.Modeltests): self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Projects 0', - output_text) + """ + + Projects  + +
+ + 0 + +
""", + output_text) self.assertIn( - 'Forks 0', + """ + + Forks  + +
+ + 0 + +
""", output_text) tests.create_projects(self.session) @@ -112,13 +142,30 @@ class PagureFlaskApptests(tests.Modeltests): self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Projects 3', - output_text) + """ + + Projects  + +
+ + 3 + +
""", + output_text) self.assertIn( - 'Forks 0', output_text) + """ + + Forks  + +
+ + 0 + +
""", + output_text) self.assertNotIn( - 'page 1 of 2', output_text) - self.assertEqual(output_text.count('class="repo_descripton"'), 3) + 'page 1 of 2', + output_text) @patch.dict('pagure.config.config', {'ENABLE_UI_NEW_PROJECTS': False}) def test_new_project_when_turned_off_in_the_ui(self): diff --git a/tests/test_pagure_flask_ui_repo.py b/tests/test_pagure_flask_ui_repo.py index 641288f..d1a5b47 100644 --- a/tests/test_pagure_flask_ui_repo.py +++ b/tests/test_pagure_flask_ui_repo.py @@ -3438,11 +3438,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 2', output_text) - self.assertIn( - 'Forks 0', - output_text) + """ + + Projects  + +
+ + 2 + +
""", output_text) + self.assertIn( + """ + + Forks  + +
+ + 0 + +
""", output_text) # Only git repo item = pagure.lib.model.Project( @@ -3460,11 +3474,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 2', output_text) + """ + + Projects  + +
+ + 2 + +
""", output_text) self.assertIn( - 'Forks 0', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) # Only git and doc repo item = pagure.lib.model.Project( @@ -3482,11 +3510,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 2', output_text) + """ + + Projects  + +
+ + 2 + +
""", output_text) self.assertIn( - 'Forks 0', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) # All repo there item = pagure.lib.model.Project( @@ -3512,11 +3554,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '3 projects', output_text) + """ + + Projects  + +
+ + 3 + +
""", output_text) self.assertNotIn( - 'Forks ', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) # add issues repo = pagure.lib.get_authorized_project(self.session, 'test') @@ -3605,21 +3661,49 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '3 projects', output_text) + """ + + Projects  + +
+ + 3 + +
""", output_text) self.assertNotIn( - 'Forks ', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) output = self.app.post('/test/delete', follow_redirects=True) self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 2', output_text) + """ + + Projects  + +
+ + 2 + +
""", output_text) self.assertIn( - 'Forks 0', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) repo = pagure.lib.get_authorized_project(self.session, 'test') self.assertEqual(repo, None) @@ -3651,26 +3735,50 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '2 projects', output_text) + """ + + Projects  + +
+ + 2 + +
""", output_text) self.assertIn( -' Forks \n' -' \n' -'
\n' -' \n' -' 1\n', - output_text) + """ + + Forks  + +
+ + 1 + +
""", output_text) output = self.app.post( '/fork/pingou/test3/delete', follow_redirects=True) self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 2', output_text) + """ + + Projects  + +
+ + 2 + +
""", output_text) self.assertIn( - 'Forks 0', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) @patch.dict('pagure.config.config', {'TICKETS_FOLDER': None}) @patch('pagure.lib.notify.send_email', MagicMock(return_value=True)) @@ -3695,11 +3803,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '3 projects', output_text) + """ + + Projects  + +
+ + 3 + +
""", output_text) self.assertNotIn( - 'Forks ', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) # Delete the project output = self.app.post('/test/delete', follow_redirects=True) @@ -3708,11 +3830,25 @@ index 0000000..fb7093d # Check deletion worked self.assertIn( - '
\n Projects 2', output_text) - self.assertIn( - 'Forks 0', - output_text) + """ + + Projects  + +
+ + 2 + +
""", output_text) + self.assertIn( + """ + + Forks  + +
+ + 0 + +
""", output_text) @patch('pagure.lib.notify.send_email') @patch('pagure.decorators.admin_session_timedout') @@ -3793,11 +3929,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 0', output_text) + """ + + Projects  + +
+ + 0 + +
""", output_text) self.assertIn( - 'Forks 0', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) # Check after repo = pagure.lib.get_authorized_project(self.session, 'test') @@ -3900,11 +4050,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 0', output_text) + """ + + Projects  + +
+ + 0 + +
""", output_text) self.assertIn( - 'Forks 0', - output_text) + """ + + Forks  + +
+ + 0 + +
""", output_text) # Check after repo = pagure.lib.get_authorized_project(self.session, 'test') @@ -3996,11 +4160,25 @@ index 0000000..fb7093d self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - '
\n Projects 0', output_text) - self.assertIn( - 'Forks 0', - output_text) + """ + + Projects  + +
+ + 0 + +
""", output_text) + self.assertIn( + """ + + Forks  + +
+ + 0 + +
""", output_text) # Check after repo = pagure.lib.get_authorized_project(self.session, 'test') diff --git a/tests/test_pagure_flask_ui_star_project.py b/tests/test_pagure_flask_ui_star_project.py index 476e9b3..668456a 100644 --- a/tests/test_pagure_flask_ui_star_project.py +++ b/tests/test_pagure_flask_ui_star_project.py @@ -193,6 +193,17 @@ class TestStarProjectUI(tests.SimplePagureTest): def test_user_stars(self): """ Test the user_stars endpoint of pagure.ui.app """ + # Check pingou's stars before + output = self.app.get('/user/pingou/stars/') + output_text = output.get_data(as_text=True) + self.assertIn( + "pingou - starred - Pagure", output_text + ) + self.assertIn( + '0 projects', + output_text) + # make pingou star the project # first create pingou user = tests.FakeUser() @@ -214,17 +225,22 @@ class TestStarProjectUI(tests.SimplePagureTest): self._check_star_count(data=data, stars=1) # now, test if the project 'test' comes in pingou's stars - output = self.app.get( - '/user/pingou/stars' - ) + output = self.app.get('/user/pingou/stars/') + output_text = output.get_data(as_text=True) self.assertIn( - "pingou's starred Projects - Pagure", - output.get_data(as_text=True) + "pingou - starred - Pagure", output_text ) self.assertIn( - '', output.get_data(as_text=True)) - self.assertEqual(output.get_data(as_text=True).count('class="list-group-item"'), 1) + '1 projects', + output_text) + self.assertEqual( + output_text.count('class="list-group-item"'), 1) + self.assertEqual( + output_text.count('