Skip to content

Commit dca39bc

Browse files
committed
Suggestions from review
1 parent 1f01d2c commit dca39bc

File tree

3 files changed

+31
-19
lines changed

3 files changed

+31
-19
lines changed

readthedocs/search/api.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def get_link(self, obj):
4747
if doctype in {SPHINX_HTMLDIR, MKDOCS}:
4848
new_path = re.sub('(^|/)index.html$', '/', path)
4949
# docs_url already ends with /,
50-
# make sure to not include it twice.
50+
# so path doesn't need to start with /.
5151
path = new_path.lstrip('/')
5252

5353
return docs_url + path

readthedocs/search/tests/conftest.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import pytest
66
from django.core.management import call_command
7-
from django_dynamic_fixture import G
7+
from django_dynamic_fixture import get
88

99
from readthedocs.projects.constants import PUBLIC
1010
from readthedocs.projects.models import HTMLFile, Project
@@ -28,7 +28,7 @@ def all_projects(es_index, mock_processed_json, db, settings):
2828
settings.ELASTICSEARCH_DSL_AUTOSYNC = True
2929
projects_list = []
3030
for project_slug in ALL_PROJECTS:
31-
project = G(
31+
project = get(
3232
Project,
3333
slug=project_slug,
3434
name=project_slug,
@@ -41,7 +41,7 @@ def all_projects(es_index, mock_processed_json, db, settings):
4141
# file_basename in config are without extension so add html extension
4242
file_name = file_basename + '.html'
4343
version = project.versions.all()[0]
44-
html_file = G(
44+
html_file = get(
4545
HTMLFile,
4646
project=project,
4747
version=version,
@@ -60,7 +60,7 @@ def all_projects(es_index, mock_processed_json, db, settings):
6060
domain_role_name = domain_data.pop('role_name')
6161
domain, type_ = domain_role_name.split(':')
6262

63-
G(
63+
get(
6464
SphinxDomain,
6565
project=project,
6666
version=version,

readthedocs/search/tests/test_api.py

+26-14
Original file line numberDiff line numberDiff line change
@@ -332,12 +332,11 @@ def test_doc_search_hidden_versions(self, api_client, all_projects):
332332
assert first_result['project'] == subproject.slug
333333

334334
@pytest.mark.parametrize('doctype', [SPHINX, SPHINX_SINGLEHTML, MKDOCS_HTML])
335-
def test_search_correct_link_html_projects(self, api_client, doctype):
335+
def test_search_correct_link_for_normal_page_html_projects(self, api_client, doctype):
336336
project = Project.objects.get(slug='docs')
337337
project.versions.update(documentation_type=doctype)
338338
version = project.versions.all().first()
339339

340-
# Check for a normal page.
341340
search_params = {
342341
'project': project.slug,
343342
'version': version.slug,
@@ -347,11 +346,15 @@ def test_search_correct_link_html_projects(self, api_client, doctype):
347346
assert resp.status_code == 200
348347

349348
result = resp.data['results'][0]
350-
351349
assert result['project'] == project.slug
352350
assert result['link'].endswith('en/latest/support.html')
353351

354-
# Check the main index page.
352+
@pytest.mark.parametrize('doctype', [SPHINX, SPHINX_SINGLEHTML, MKDOCS_HTML])
353+
def test_search_correct_link_for_index_page_html_projects(self, api_client, doctype):
354+
project = Project.objects.get(slug='docs')
355+
project.versions.update(documentation_type=doctype)
356+
version = project.versions.all().first()
357+
355358
search_params = {
356359
'project': project.slug,
357360
'version': version.slug,
@@ -361,11 +364,15 @@ def test_search_correct_link_html_projects(self, api_client, doctype):
361364
assert resp.status_code == 200
362365

363366
result = resp.data['results'][0]
364-
365367
assert result['project'] == project.slug
366368
assert result['link'].endswith('en/latest/index.html')
367369

368-
# Check the index page of a subdirectory.
370+
@pytest.mark.parametrize('doctype', [SPHINX, SPHINX_SINGLEHTML, MKDOCS_HTML])
371+
def test_search_correct_link_for_index_page_subdirectory_html_projects(self, api_client, doctype):
372+
project = Project.objects.get(slug='docs')
373+
project.versions.update(documentation_type=doctype)
374+
version = project.versions.all().first()
375+
369376
search_params = {
370377
'project': project.slug,
371378
'version': version.slug,
@@ -375,17 +382,15 @@ def test_search_correct_link_html_projects(self, api_client, doctype):
375382
assert resp.status_code == 200
376383

377384
result = resp.data['results'][0]
378-
379385
assert result['project'] == project.slug
380386
assert result['link'].endswith('en/latest/guides/index.html')
381387

382388
@pytest.mark.parametrize('doctype', [SPHINX_HTMLDIR, MKDOCS])
383-
def test_search_correct_link_htmldir_projects(self, api_client, doctype):
389+
def test_search_correct_link_for_normal_page_htmldir_projects(self, api_client, doctype):
384390
project = Project.objects.get(slug='docs')
385391
project.versions.update(documentation_type=doctype)
386392
version = project.versions.all().first()
387393

388-
# Check for a normal page.
389394
search_params = {
390395
'project': project.slug,
391396
'version': version.slug,
@@ -395,11 +400,15 @@ def test_search_correct_link_htmldir_projects(self, api_client, doctype):
395400
assert resp.status_code == 200
396401

397402
result = resp.data['results'][0]
398-
399403
assert result['project'] == project.slug
400404
assert result['link'].endswith('en/latest/support.html')
401405

402-
# Check the main index page.
406+
@pytest.mark.parametrize('doctype', [SPHINX_HTMLDIR, MKDOCS])
407+
def test_search_correct_link_for_index_page_htmldir_projects(self, api_client, doctype):
408+
project = Project.objects.get(slug='docs')
409+
project.versions.update(documentation_type=doctype)
410+
version = project.versions.all().first()
411+
403412
search_params = {
404413
'project': project.slug,
405414
'version': version.slug,
@@ -409,11 +418,15 @@ def test_search_correct_link_htmldir_projects(self, api_client, doctype):
409418
assert resp.status_code == 200
410419

411420
result = resp.data['results'][0]
412-
413421
assert result['project'] == project.slug
414422
assert result['link'].endswith('en/latest/')
415423

416-
# Check the index page of a subdirectory.
424+
@pytest.mark.parametrize('doctype', [SPHINX_HTMLDIR, MKDOCS])
425+
def test_search_correct_link_for_index_page_subdirectory_htmldir_projects(self, api_client, doctype):
426+
project = Project.objects.get(slug='docs')
427+
project.versions.update(documentation_type=doctype)
428+
version = project.versions.all().first()
429+
417430
search_params = {
418431
'project': project.slug,
419432
'version': version.slug,
@@ -423,7 +436,6 @@ def test_search_correct_link_htmldir_projects(self, api_client, doctype):
423436
assert resp.status_code == 200
424437

425438
result = resp.data['results'][0]
426-
427439
assert result['project'] == project.slug
428440
assert result['link'].endswith('en/latest/guides/')
429441

0 commit comments

Comments
 (0)