3
3
4
4
import pytest
5
5
from data_platform_catalogue .client import BaseCatalogueClient
6
- from data_platform_catalogue .search_types import (FacetOption , ResultType ,
7
- SearchFacets , SearchResponse ,
8
- SearchResult )
6
+ from data_platform_catalogue .search_types import (
7
+ FacetOption ,
8
+ ResultType ,
9
+ SearchFacets ,
10
+ SearchResponse ,
11
+ SearchResult ,
12
+ )
9
13
from django .test import Client
10
14
from faker import Faker
15
+ from home .service .search import SearchService
16
+ from home .service .details import DetailsService
17
+ from home .forms .search import SearchForm
11
18
12
19
fake = Faker ()
13
20
@@ -59,7 +66,8 @@ def mock_catalogue():
59
66
mock_catalogue = MagicMock (spec = BaseCatalogueClient )
60
67
mock_fn .return_value = mock_catalogue
61
68
mock_search_response (
62
- mock_catalogue , page_results = generate_page (), total_results = 100 )
69
+ mock_catalogue , page_results = generate_page (), total_results = 100
70
+ )
63
71
mock_search_facets_response (mock_catalogue , domains = generate_options ())
64
72
65
73
yield mock_catalogue
@@ -69,10 +77,44 @@ def mock_catalogue():
69
77
70
78
def mock_search_response (mock_catalogue , total_results = 0 , page_results = ()):
71
79
search_response = SearchResponse (
72
- total_results = total_results , page_results = page_results )
80
+ total_results = total_results , page_results = page_results
81
+ )
73
82
mock_catalogue .search .return_value = search_response
74
83
75
84
76
85
def mock_search_facets_response (mock_catalogue , domains ):
77
86
mock_catalogue .search_facets .return_value = SearchFacets (
78
87
{"domains" : domains })
88
+
89
+
90
+ @pytest .fixture
91
+ def valid_form ():
92
+ valid_form = SearchForm (
93
+ data = {
94
+ "query" : "test" ,
95
+ "domains" : ["urn:li:domain:HMCTS" ],
96
+ "sort" : "ascending" ,
97
+ "clear_filter" : False ,
98
+ "clear_label" : False ,
99
+ }
100
+ )
101
+ assert valid_form .is_valid ()
102
+
103
+ return valid_form
104
+
105
+
106
+ @pytest .fixture
107
+ def search_context (valid_form ):
108
+ search_service = SearchService (form = valid_form , page = "1" )
109
+ context = search_service ._get_context ()
110
+ return context
111
+
112
+
113
+ @pytest .fixture
114
+ def detail_context (mock_catalogue ):
115
+ mock_catalogue .search .return_value = SearchResponse (
116
+ total_results = 1 , page_results = generate_page (page_size = 1 )
117
+ )
118
+ details_service = DetailsService (urn = "urn:li:dataProduct:test" )
119
+ context = details_service ._get_context ()
120
+ return context
0 commit comments