From 74cd345f76dd01034c804f75e7f16b42e9c0643c Mon Sep 17 00:00:00 2001 From: Christoph Schlosser Date: Thu, 18 Sep 2025 22:05:48 +0200 Subject: g2h: Add breadcrumb navigations to file and tree pages --- tests/file_page_test.py | 2 ++ tests/file_test.py | 14 ++++++++++++-- tests/tree_page_test.py | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/file_page_test.py b/tests/file_page_test.py index a1123de..3fff51e 100644 --- a/tests/file_page_test.py +++ b/tests/file_page_test.py @@ -41,6 +41,7 @@ def test_context(): assert(context['file_extension'] == 'txt') assert(context['title'] == 'file test: test_file.txt') assert(context['type'] == 'text') + assert(context['breadcrumbs'] == '[/](/file/content/123/t/)/[test_file.txt](/file/content/123/t/test_file.txt)') def test_context_dot_file(): file = MagicMock() @@ -57,6 +58,7 @@ def test_context_dot_file(): assert(context['file_extension'] == '') assert(context['title'] == 'file test: .file') assert(context['type'] == 'text') + assert(context['breadcrumbs'] == '[/](/file/content/123/t/)/[.file](/file/content/123/t/_file)') def test_bytes_to_content_text(): content, type = bytes_to_content('test'.encode()) diff --git a/tests/file_test.py b/tests/file_test.py index 838df71..d1b40bd 100644 --- a/tests/file_test.py +++ b/tests/file_test.py @@ -1,9 +1,9 @@ import os import pytest -from unittest.mock import Mock +from unittest.mock import MagicMock, Mock -from g2h.file import sanitize_file_name, tree_join +from g2h.file import generate_breadcrumbs, sanitize_file_name, tree_join def test_sanitize_not_necessary(): assert(sanitize_file_name('foo', None) == 'foo') @@ -24,3 +24,13 @@ def test_tree_join(): commit = Mock() commit.hexsha = '123' assert(tree_join(commit, 'test') == os.path.join('123', 't', 'test')) + +def test_generate_breadcrumbs(): + commit = Mock() + commit.hexsha = '123' + assert(generate_breadcrumbs('', commit, '', None) == '[/](/123/t/)') + assert(generate_breadcrumbs('', commit, 'sub', None) == '[/](/123/t/)/[sub](/123/t/sub)') + assert(generate_breadcrumbs('', commit, 'sub/dir', None) == '[/](/123/t/)/[sub](/123/t/sub)/[dir](/123/t/sub/dir)') + assert(generate_breadcrumbs('', commit, 'sub/dir/file.txt', None) == '[/](/123/t/)/[sub](/123/t/sub)/[dir](/123/t/sub/dir)/[file.txt](/123/t/sub/dir/file.txt)') + assert(generate_breadcrumbs('content sub', commit, 'sub', None) == '[/](/content sub/123/t/)/[sub](/content sub/123/t/sub)') + assert(generate_breadcrumbs('', commit, 'sub/.file', MagicMock()) == '[/](/123/t/)/[sub](/123/t/sub)/[.file](/123/t/sub/_file)') diff --git a/tests/tree_page_test.py b/tests/tree_page_test.py index 891e940..a298728 100644 --- a/tests/tree_page_test.py +++ b/tests/tree_page_test.py @@ -53,6 +53,7 @@ def test_context_empty(): assert(context['content_subdir'] == '') assert(context['subdir'] == '/123/t/tree/path') assert(context['title'] == 'tree test: Tree') + assert(context['breadcrumbs'] == '[/](/123/t/)') def test_context_entries(): tree = MagicMock() @@ -111,7 +112,6 @@ def test_get_files(): commit.tree = tree expected = [] for case in [ None, '.file', 'README', 'main.cc' ]: - print(str(case)) if case: add_node(tree, case) expected.append(case) -- cgit v1.2.3