diff --git a/pagure/templates/index_auth.html b/pagure/templates/index_auth.html index ad800d0..3fa4737 100644 --- a/pagure/templates/index_auth.html +++ b/pagure/templates/index_auth.html @@ -129,6 +129,7 @@ {{fork.user.username}}/{{ fork.namespace + '/' if fork.namespace }}{{ fork.name }}
+ {% if fork.parent %} forked from forked from a deleted repository + {% endif %} {% if fork.settings.get('issue_tracker', True) %} {% if fork.open_tickets_public == 0 %} '), 6) + def test_index_fork_without_parent(self): + """ Test the index view: forks should display either their parent + project or mention that it was deleted. """ + tests.create_projects(self.session) + + # Add a 3rd project just for foo + item = pagure.lib.model.Project( + user_id=2, # foo + name='test3', + description='test project #3', + hook_token='aaabbbeeefff', + is_fork=True, + parent_id=1, + ) + self.session.add(item) + self.session.commit() + + user = tests.FakeUser(username='foo') + with tests.user_set(self.app.application, user): + # Before + output = self.app.get('/') + self.assertEqual(output.status_code, 200) + + self.assertIn( + 'My Forks 1', + output.data) + segment = output.data.split('My Forks')[1].split('My Groups')[0] + self.assertRegexpMatches( + segment, + r'foo/test3(\s*<[^>]+?>\s*)*?forked from(\s*<[^>]+?>\s*)*?test' + ) + + # Delete the parent (or fake it) + proj = pagure.lib._get_project(self.session, 'test3', user='foo') + proj.parent_id = None + self.session.add(proj) + self.session.commit() + + # Check page again + output = self.app.get('/') + self.assertEqual(output.status_code, 200) + + self.assertIn( + 'My Forks 1', + output.data) + segment = output.data.split('My Forks')[1].split('My Groups')[0] + self.assertRegexpMatches( + segment, + r'foo/test3(\s*<[^>]+?>\s*)*?forked from a deleted repository' + ) + if __name__ == '__main__': unittest.main(verbosity=2)