예제 #1
0
 def test_search_page_es_selection(self, mock_filter):
     page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerResultsPage',
         'Mock Spanish results page',
         'respuestas',
         self.spanish_parent_page,
         language='es',
         live=True)
     mock_return = mock.Mock()
     mock_return.url = 'url'
     mock_return.autocomplete = 'question text'
     mock_queryset = mock.Mock()
     mock_queryset.__iter__ = mock.Mock(return_value=iter([mock_return]))
     mock_queryset.count.return_value = 1
     mock_filter.return_value = mock_queryset
     self.client.get(reverse(
         'ask-search-es', kwargs={'language': 'es'}), {'q': 'hipotecas'})
     self.assertEqual(mock_filter.call_count, 1)
     self.assertEqual(page.language, 'es')
     self.assertEqual(page.answers, [])
     self.assertEqual(
         page.get_template(HttpRequest()),
         'ask-cfpb/answer-search-spanish-results.html')
예제 #2
0
    def test_en_search_suggestion(self, mock_sqs):
        from v1.util.migrations import get_or_create_page
        mock_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerResultsPage',
            'Mock results page',
            'ask-cfpb-search-results',
            self.english_parent_page,
            language='en',
            live=True)

        mock_return = mock.Mock()
        mock_return.url = 'mockcfpb.gov'
        mock_return.autocomplete = 'A mock question'
        mock_return.text = 'Mock answer text.'

        mock_queryset = mock.Mock()
        mock_queryset.__iter__ = mock.Mock(return_value=iter([mock_return]))
        mock_queryset.count.return_value = 0

        mock_sqs_instance = mock_sqs.return_value.models.return_value
        mock_sqs_instance.filter.return_value = mock_queryset
        mock_sqs_instance.spelling_suggestion.return_value = 'payday'

        response = self.client.get(reverse(
            'ask-search-en'), {'q': 'paydya'})
        self.assertEqual(response.status_code, 200)
        response_page = response.context_data['page']

        self.assertEqual(response_page, mock_page)
        self.assertEqual(response_page.suggestion, 'paydya')
        self.assertEqual(response_page.result_query, 'payday')
        self.assertEqual(response_page.query, 'paydya')
예제 #3
0
def get_or_create_category_pages():
    from v1.models import CFGOVPage
    parent = CFGOVPage.objects.get(slug='ask-cfpb').specific
    counter = 0
    for cat in Category.objects.all():
        for language in ['en', 'es']:
            if language == 'en':
                title = cat.name
                page_slug = "category-{}".format(cat.slug)
                parent = CFGOVPage.objects.get(slug='ask-cfpb').specific
            else:
                title = cat.name_es
                page_slug = "categoria-{}".format(cat.slug_es)
                parent = CFGOVPage.objects.get(
                    slug='obtener-respuestas').specific

            cat_page = get_or_create_page(
                apps,
                'ask_cfpb',
                'AnswerCategoryPage',
                title,
                page_slug,
                parent,
                language=language,
                ask_category=cat)
            prep_page(cat_page)
            time.sleep(1)
            counter += 1
    print("Created {} category pages".format(counter))
예제 #4
0
 def setUp(self):
     from v1.models import HomePage
     ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.audiences = [mommy.make(Audience, name='stub_audience')]
     self.category = mommy.make(Category, name='stub_cat', name_es='que')
     self.subcategories = mommy.make(
         SubCategory, name='stub_subcat', _quantity=3)
     self.category.subcategories.add(self.subcategories[0])
     self.category.save()
     self.next_step = mommy.make(NextStep, title='stub_step')
     page_clean = patch('ask_cfpb.models.pages.CFGOVPage.clean')
     page_clean.start()
     self.addCleanup(page_clean.stop)
     self.english_parent_page = get_or_create_page(
         apps,
         'v1',
         'LandingPage',
         'Ask CFPB',
         ENGLISH_PARENT_SLUG,
         ROOT_PAGE,
         live=True)
     self.spanish_parent_page = get_or_create_page(
         apps,
         'v1',
         'LandingPage',
         'Obtener respuestas',
         SPANISH_PARENT_SLUG,
         ROOT_PAGE,
         live=True)
     self.answer1234 = self.prepare_answer(
         id=1234,
         answer='Mock answer 1',
         question='Mock question1')
     self.answer1234.save()
     self.page1 = self.create_answer_page()
     self.page1.answer_base = self.answer1234
     self.page1.parent = self.english_parent_page
     self.page1.save()
     self.answer5678 = self.prepare_answer(
         id=5678,
         answer='Mock answer 2',
         question='Mock question2')
     self.answer5678.save()
     self.page2 = self.create_answer_page(slug='mock-answer-page-en-5678')
     self.page2.answer_base = self.answer5678
     self.page2.parent = self.english_parent_page
     self.page2.save()
예제 #5
0
 def setUp(self):
     from v1.models import HomePage
     self.ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.english_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Ask CFPB',
         ENGLISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language='en',
         live=True)
     self.spanish_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Obtener respuestas',
         SPANISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language='es',
         live=True)
예제 #6
0
 def setUp(self):
     from v1.models import HomePage
     from ask_cfpb.models import Answer
     self.ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.english_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Ask CFPB',
         ENGLISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language='en',
         live=True)
     self.spanish_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Obtener respuestas',
         SPANISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language='es',
         live=True)
     self.test_answer = mommy.make(
         Answer,
         answer="Test answer.",
         question="Test question.",
         slug='test-question',
         update_english_page=True,
         update_spanish_page=False)
     self.site = mommy.make(
         Site,
         root_page=self.ROOT_PAGE,
         hostname='localhost',
         port=8000,
         is_default_site=True)
     self.sharing_site = mommy.make(
         SharingSite,
         site=self.site,
         hostname='preview.localhost',
         port=8000)
예제 #7
0
 def test_es_search(self, mock_filter):
     get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerResultsPage',
         'Mock Spanish results page',
         'respuestas',
         self.spanish_parent_page,
         language='es',
         live=True)
     mock_return = mock.Mock()
     mock_return.url = 'mockcfpb.gov'
     mock_return.autocomplete = 'A mock question'
     mock_return.text = 'Mock answer text.'
     mock_queryset = mock.Mock()
     mock_queryset.__iter__ = mock.Mock(return_value=iter([mock_return]))
     mock_queryset.count.return_value = 1
     mock_filter.return_value = mock_queryset
     self.client.get(reverse(
         'ask-search-es', kwargs={'language': 'es'}), {'q': 'payday'})
     self.assertEqual(mock_filter.call_count, 1)
     self.assertTrue(mock_filter.called_with(language='es', q='payday'))
예제 #8
0
def get_or_create_landing_pages():
    """
    Create Spanish and English landing pages.
    """

    from v1.models import CFGOVPage, LandingPage
    en_root = CFGOVPage.objects.get(slug='cfgov').specific
    es_root = LandingPage.objects.get(slug='es').specific

    hero_stream_value = [
        {'type': 'hero',
         'value': {
             'heading': 'Ask CFPB',
             'links': [],
             'background_color': '#ffffff',
             'body': ('We offer clear, impartial answers to hundreds '
                      'of financial questions. Find the information you need '
                      'to make more informed choices about your money.')}}]
    landing_map = {
        'en': {'slug': 'ask-cfpb',
               'title': 'Ask CFPB',
               'hero': hero_stream_value,
               'parent': en_root},
        'es': {'slug': 'obtener-respuestas',
               'title': 'Obtener respuestas',
               'hero': None,
               'parent': es_root}
    }
    counter = 0
    for language in sorted(landing_map.keys()):
        _map = landing_map[language]
        landing_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerLandingPage',
            _map['title'],
            _map['slug'],
            _map['parent'],
            language=language)
        if _map['hero']:
            stream_block = landing_page.header.stream_block
            landing_page.header = StreamValue(
                stream_block,
                _map['hero'],
                is_lazy=True)
        prep_page(landing_page)
        time.sleep(1)
        counter += 1

    print("Created an 'es' parent and {} landing pages".format(counter))
예제 #9
0
 def create_or_update_page(self, language=None):
     """Create or update an English or Spanish Answer page"""
     from .pages import AnswerPage
     english_parent = Page.objects.get(slug=ENGLISH_PARENT_SLUG).specific
     spanish_parent = Page.objects.get(slug=SPANISH_PARENT_SLUG).specific
     if language == 'en':
         _parent = english_parent
         _slug = self.slug
         _question = self.question
         _snippet = self.snippet
         _answer = self.answer
     elif language == 'es':
         _parent = spanish_parent
         _slug = self.slug_es
         _question = self.question_es
         _snippet = self.snippet_es
         _answer = self.answer_es
     else:
         raise ValueError('unsupported language: "{}"'.format(language))
     try:
         base_page = AnswerPage.objects.get(
             language=language, answer_base=self)
     except ObjectDoesNotExist:
         base_page = get_or_create_page(
             apps,
             'ask_cfpb',
             'AnswerPage',
             '{}-{}-{}'.format(_question[:244], language, self.id),
             _slug,
             _parent,
             show_in_menus=True,
             language=language,
             answer_base=self)
         base_page.save_revision(user=self.last_user)
     _page = base_page.get_latest_revision_as_page()
     _page.question = _question
     _page.answer = _answer
     _page.snippet = _snippet
     _page.title = '{}-{}-{}'.format(
         _question[:244], language, self.id)
     _page.live = False
     _page.has_unpublished_changes = True
     stream_block = _page.content.stream_block
     _page.content = StreamValue(
         stream_block,
         get_feedback_stream_value(_page),
         is_lazy=True)
     _page.save_revision(user=self.last_user)
     return _page
예제 #10
0
 def test_json_response(self, mock_filter):
     get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerResultsPage',
         'Mock results page',
         'ask-cfpb-search-results',
         self.english_parent_page,
         language='en',
         live=True)
     mock_return = mock.Mock()
     mock_return.url = "inscisive_url.com"
     mock_return.autocomplete = "inscisive question"
     mock_return.text = "inscisive text"
     mock_queryset = mock.Mock()
     mock_queryset.__iter__ = mock.Mock(return_value=iter([mock_return]))
     mock_queryset.count.return_value = 1
     mock_filter.return_value = mock_queryset
     response = self.client.get(reverse(
         'ask-search-en-json',
         kwargs={'as_json': 'json'}), {'q': 'tuition'})
     self.assertEqual(response.status_code, 200)
     self.assertEqual(mock_filter.call_count, 1)
     self.assertEqual(json.loads(response.content)['query'], 'tuition')
예제 #11
0
def get_or_create_audience_pages():
    from v1.models import CFGOVPage
    parent = CFGOVPage.objects.get(slug='ask-cfpb').specific
    counter = 0
    for audience in ASK_audience.objects.all():
        audience_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerAudiencePage',
            audience.name,
            "audience-{}".format(slugify(audience.name)),
            parent,
            language='en',
            ask_audience=audience)
        prep_page(audience_page)
        time.sleep(1)
        counter += 1
    print("Created {} audience pages".format(counter))
def get_or_create_parent_pages():
    from v1.models import CFGOVPage
    counter = 0
    for parent_type in sorted(PARENT_MAP.keys()):
        _map = PARENT_MAP[parent_type]
        parent_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerLandingPage',
            _map['title'],
            _map['slug'],
            CFGOVPage.objects.get(slug=_map['parent_slug']).specific,
            language=_map['language'])
        parent_page.has_unpublished_changes = True
        revision = parent_page.save_revision()
        parent_page.save()
        revision.publish()
        time.sleep(1)
        counter += 1
    print("Created {} parent pages".format(counter))
예제 #13
0
    def test_en_search_suggestion(self, mock_filter, mock_suggestion):
        from v1.util.migrations import get_or_create_page
        mock_page = get_or_create_page(apps,
                                       'ask_cfpb',
                                       'AnswerResultsPage',
                                       'Mock results page',
                                       'ask-cfpb-search-results',
                                       self.english_parent_page,
                                       language='en',
                                       live=True)

        # AskSearch.sugggest flips search_term and suggestion when called
        mock_filter.return_value = mock_queryset(count=0)
        mock_suggestion.return_value = 'payday'
        response = self.client.get(reverse('ask-search-en'), {'q': 'paydya'})
        self.assertEqual(response.status_code, 200)
        response_page = response.context_data['page']
        self.assertEqual(response_page, mock_page)
        self.assertEqual(response_page.result_query, 'payday')
        self.assertEqual(response_page.query, 'paydya')
예제 #14
0
    def test_en_search(self, mock_ask_search):
        from v1.util.migrations import get_or_create_page
        mock_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerResultsPage',
            'Mock results page',
            'ask-cfpb-search-results',
            self.ROOT_PAGE,
            language='en')

        mock_ask_search.queryset = mock_queryset(count=3)
        mock_ask_search.suggestion = None
        mock_ask_search.search_term = 'payday'
        response = self.client.get(reverse(
            'ask-search-en'), {'q': 'payday'})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.context_data['page'], mock_page)
        self.assertEqual(mock_ask_search.call_count, 1)
        self.assertTrue(mock_ask_search.called_with(
            language='en', search_term='payday'))
예제 #15
0
def get_or_create_category_pages():
    from v1.models import CFGOVPage
    parent = CFGOVPage.objects.get(slug='ask-cfpb').specific
    counter = 0
    for cat in Category.objects.all():
        cat_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerCategoryPage',
            '{} > Consumer Financial Protection Bureau'.format(cat.name),
            "category-{}".format(cat.slug),
            parent,
            language='en',
            ask_category=cat)
        cat_page.has_unpublished_changes = True
        revision = cat_page.save_revision()
        cat_page.save()
        revision.publish()
        time.sleep(1)
        counter += 1
    print("Created {} category pages".format(counter))
예제 #16
0
    def test_en_search(self, mock_ask_search):
        from v1.util.migrations import get_or_create_page

        mock_page = get_or_create_page(
            apps,
            "ask_cfpb",
            "AnswerResultsPage",
            "Mock results page",
            "ask-cfpb-search-results",
            self.ROOT_PAGE,
            language="en",
        )

        mock_ask_search.queryset = mock_queryset(count=3)
        mock_ask_search.suggestion = None
        mock_ask_search.search_term = "payday"
        response = self.client.get(reverse("ask-search-en"), {"q": "payday"})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.context_data["page"], mock_page)
        self.assertEqual(mock_ask_search.call_count, 1)
        self.assertTrue(
            mock_ask_search.called_with(language="en", search_term="payday"))
def get_or_create_search_results_pages():
    from v1.models import CFGOVPage
    parent_en = CFGOVPage.objects.get(slug='ask-cfpb').specific
    parent_es = CFGOVPage.objects.get(slug='obtener-respuestas').specific
    language_map = {
        'en': {
            'title': 'Ask CFPB search results',
            'slug': 'ask-cfpb-search-results',
            'page_type': 'AnswerResultsPage',
            'language': 'en',
            'parent': parent_en
        },
        'es': {
            'title': 'Respuestas',
            'slug': 'respuestas',
            'page_type': 'AnswerResultsPage',
            'language': 'es',
            'parent': parent_es
        },
        'tag': {
            'title': 'Buscar por etiqueta',
            'slug': 'buscar-por-etiqueta',
            'page_type': 'TagResultsPage',
            'language': None,
            'parent': parent_es
        }
    }
    counter = 0
    for key in language_map:
        _map = language_map[key]
        results_page = get_or_create_page(apps, 'ask_cfpb', _map['page_type'],
                                          _map['title'], _map['slug'],
                                          _map['parent'])
        if _map['language']:
            results_page.language = _map['language']
        prep_page(results_page)
        time.sleep(1)
        counter += 1
    print("Created {} search results pages".format(counter))
예제 #18
0
 def test_search_page_en_selection(self, mock_filter):
     page = get_or_create_page(apps,
                               'ask_cfpb',
                               'AnswerResultsPage',
                               'Mock results page',
                               'ask-cfpb-search-results',
                               self.english_parent_page,
                               language='en',
                               live=True)
     mock_return = mock.Mock()
     mock_return.url = 'url'
     mock_return.autocomplete = 'question text'
     mock_queryset = mock.Mock()
     mock_queryset.__iter__ = mock.Mock(return_value=iter([mock_return]))
     mock_queryset.count.return_value = 1
     mock_filter.return_value = mock_queryset
     self.client.get(reverse('ask-search-en'), {'q': 'tuition'})
     self.assertEqual(mock_filter.call_count, 1)
     self.assertEqual(page.language, 'en')
     self.assertEqual(page.answers, [])
     self.assertEqual(page.get_template(HttpRequest()),
                      'ask-cfpb/answer-search-results.html')
예제 #19
0
    def test_en_search_no_term(self, mock_sqs):
        from v1.util.migrations import get_or_create_page
        mock_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerResultsPage',
            'Mock results page',
            'ask-cfpb-search-results',
            self.ROOT_PAGE,
            language='en')

        response = self.client.get(reverse(
            'ask-search-en'), {'q': ''})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            response.context_data['page'],
            mock_page)
        self.assertEqual(
            response.context_data['page'].query,
            '')
        self.assertEqual(
            response.context_data['page'].result_query,
            '')
예제 #20
0
    def test_en_search_suggestion(self, mock_filter, mock_suggestion):
        from v1.util.migrations import get_or_create_page

        mock_page = get_or_create_page(
            apps,
            "ask_cfpb",
            "AnswerResultsPage",
            "Mock results page",
            "ask-cfpb-search-results",
            self.english_parent_page,
            language="en",
            live=True,
        )

        # AskSearch.sugggest flips search_term and suggestion when called
        mock_filter.return_value = mock_queryset(count=0)
        mock_suggestion.return_value = "payday"
        response = self.client.get(reverse("ask-search-en"), {"q": "paydya"})
        self.assertEqual(response.status_code, 200)
        response_page = response.context_data["page"]
        self.assertEqual(response_page, mock_page)
        self.assertEqual(response_page.result_query, "payday")
        self.assertEqual(response_page.query, "paydya")
예제 #21
0
 def test_en_search(self, mock_query):
     from v1.util.migrations import get_or_create_page
     mock_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerResultsPage',
         'Mock results page',
         'ask-cfpb-search-results',
         self.ROOT_PAGE,
         language='en')
     mock_return = mock.Mock()
     mock_return.url = 'mockcfpb.gov'
     mock_return.autocomplete = 'A mock question'
     mock_return.text = 'Mock answer text.'
     mock_query.return_value = [mock_return]
     response = self.client.get(reverse(
         'ask-search-en'), {'q': 'payday'})
     self.assertEqual(mock_query.call_count, 1)
     self.assertTrue(mock_query.called_with(language='en', q='payday'))
     self.assertEqual(response.status_code, 200)
     self.assertEqual(
         response.context_data['page'],
         mock_page)
예제 #22
0
 def test_en_search_no_term(self, mock_ask_search):
     from v1.util.migrations import get_or_create_page
     mock_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerResultsPage',
         'Mock results page',
         'ask-cfpb-search-results',
         self.ROOT_PAGE,
         language='en')
     mock_ask_search.queryset = mock_queryset()
     response = self.client.get(reverse(
         'ask-search-en'), {'q': ''})
     self.assertEqual(response.status_code, 200)
     self.assertEqual(
         response.context_data['page'],
         mock_page)
     self.assertEqual(
         response.context_data['page'].query,
         '')
     self.assertEqual(
         response.context_data['page'].result_query,
         '')
예제 #23
0
def get_or_create_search_results_pages():
    from v1.models import CFGOVPage
    parent_en = CFGOVPage.objects.get(slug='ask-cfpb').specific
    parent_es = CFGOVPage.objects.get(slug='obtener-respuestas').specific
    language_map = {
        'en': {'title': 'Ask CFPB search results',
               'slug': 'ask-cfpb-search-results',
               'page_type': 'AnswerResultsPage',
               'language': 'en',
               'parent': parent_en},
        'es': {'title': 'Respuestas',
               'slug': 'respuestas',
               'page_type': 'AnswerResultsPage',
               'language': 'es',
               'parent': parent_es},
        'tag': {'title': 'Buscar por etiqueta',
                'slug': 'buscar-por-etiqueta',
                'page_type': 'TagResultsPage',
                'language': None,
                'parent': parent_es}
    }
    counter = 0
    for key in language_map:
        _map = language_map[key]
        results_page = get_or_create_page(
            apps,
            'ask_cfpb',
            _map['page_type'],
            _map['title'],
            _map['slug'],
            _map['parent'])
        if _map['language']:
            results_page.language = _map['language']
        prep_page(results_page)
        time.sleep(1)
        counter += 1
    print("Created {} search results pages".format(counter))
예제 #24
0
 def test_search_page_es_selection(self, mock_search):
     page = get_or_create_page(
         apps,
         "ask_cfpb",
         "AnswerResultsPage",
         "Mock Spanish results page",
         "respuestas",
         self.spanish_parent_page,
         language="es",
         live=True,
     )
     mock_search.serch_term = "hipotecas"
     mock_search.queryset = mock_queryset(count=5)
     response = self.client.get(
         reverse("ask-search-es", kwargs={"language": "es"}),
         {"q": "hipotecas"},
     )
     self.assertEqual(page.answers, [])
     self.assertEqual(mock_search.call_count, 1)
     self.assertEqual(response.context_data["page"].language, "es")
     self.assertEqual(
         page.get_template(HttpRequest()),
         "ask-cfpb/answer-search-results.html",
     )
예제 #25
0
    def test_en_search(self, mock_sqs):
        from v1.util.migrations import get_or_create_page
        mock_page = get_or_create_page(
            apps,
            'ask_cfpb',
            'AnswerResultsPage',
            'Mock results page',
            'ask-cfpb-search-results',
            self.ROOT_PAGE,
            language='en')

        mock_return = mock.Mock()
        mock_return.url = 'mockcfpb.gov'
        mock_return.autocomplete = 'A mock question'
        mock_return.text = 'Mock answer text.'

        mock_queryset = mock.Mock()
        mock_queryset.__iter__ = mock.Mock(return_value=iter([mock_return]))
        mock_queryset.count.return_value = 1

        mock_sqs_instance = mock_sqs.return_value.models.return_value
        mock_sqs_instance.filter.return_value = mock_queryset
        mock_sqs_instance.spelling_suggestion.return_value = 'payday'

        response = self.client.get(reverse(
            'ask-search-en'), {'q': 'payday'})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            response.context_data['page'],
            mock_page)
        self.assertEqual(
            response.context_data['page'].suggestion,
            None)
        self.assertEqual(mock_sqs_instance.filter.call_count, 1)
        self.assertTrue(mock_sqs_instance.filter.called_with(
            language='en', q='payday'))
예제 #26
0
 def setUp(self):
     self.test_user = User.objects.get(pk=1)
     self.factory = RequestFactory()
     ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.audience = mommy.make(Audience, name='stub_audience')
     self.category = mommy.make(Category,
                                name='stub_cat',
                                name_es='que',
                                slug='stub-cat')
     self.subcategories = mommy.make(SubCategory,
                                     name='stub_subcat',
                                     parent=self.category,
                                     _quantity=3)
     self.category.subcategories.add(self.subcategories[0])
     self.category.save()
     self.test_image = mommy.make(CFGOVImage)
     self.test_image2 = mommy.make(CFGOVImage)
     self.next_step = mommy.make(NextStep, title='stub_step')
     self.portal_topic = mommy.make(PortalTopic,
                                    heading='test topic',
                                    heading_es='prueba tema')
     page_clean = mock.patch('ask_cfpb.models.pages.CFGOVPage.clean')
     page_clean.start()
     self.addCleanup(page_clean.stop)
     self.portal_page = SublandingPage(title='test portal page',
                                       slug='test-portal-page',
                                       portal_topic=self.portal_topic,
                                       language='en')
     ROOT_PAGE.add_child(instance=self.portal_page)
     self.portal_page.save()
     self.portal_page.save_revision().publish()
     self.portal_page_es = SublandingPage(title='test portal page',
                                          slug='test-portal-page-es',
                                          portal_topic=self.portal_topic,
                                          language='es')
     ROOT_PAGE.add_child(instance=self.portal_page_es)
     self.portal_page_es.save()
     self.portal_page_es.save_revision().publish()
     self.english_parent_page = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'AnswerLandingPage',
                                                   'Ask CFPB',
                                                   ENGLISH_PARENT_SLUG,
                                                   ROOT_PAGE,
                                                   language='en',
                                                   live=True)
     self.spanish_parent_page = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'AnswerLandingPage',
                                                   'Obtener respuestas',
                                                   SPANISH_PARENT_SLUG,
                                                   ROOT_PAGE,
                                                   language='es',
                                                   live=True)
     self.tag_results_page_en = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'TagResultsPage',
                                                   'Tag results page',
                                                   'search-by-tag',
                                                   ROOT_PAGE,
                                                   language='en',
                                                   live=True)
     self.tag_results_page_es = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'TagResultsPage',
                                                   'Tag results page',
                                                   'buscar-por-etiqueta',
                                                   ROOT_PAGE,
                                                   language='es',
                                                   live=True)
     self.answer1234 = self.prepare_answer(
         id=1234,
         answer='Mock answer 1',
         answer_es='Mock Spanish answer',
         slug='mock-answer-en-1234',
         slug_es='mock-spanish-answer-es-1234',
         question='Mock question1',
         question_es='Mock Spanish question1',
         search_tags='hippodrome',
         search_tags_es='hipotecas',
         update_english_page=True,
         update_spanish_page=True)
     self.answer1234.save()
     self.page1 = AnswerPage(language='en',
                             answer_base=self.answer1234,
                             slug='mock-question-en-1234',
                             title='Mock question1',
                             answer='Mock answer 1',
                             question='Mock question1',
                             search_tags='hippodrome')
     self.english_parent_page.add_child(instance=self.page1)
     self.page1.save_revision().publish()
     self.page1_es = AnswerPage(language='es',
                                slug='mock-spanish-question1-es-1234',
                                title='Mock Spanish question1',
                                answer_base=self.answer1234,
                                answer='Mock Spanish answer',
                                question='Mock Spanish question1',
                                search_tags='hipotecas')
     self.spanish_parent_page.add_child(instance=self.page1_es)
     self.page1_es.save_revision().publish()
     self.answer5678 = self.prepare_answer(id=5678,
                                           answer='Mock answer 2',
                                           question='Mock question2',
                                           search_tags='hippodrome',
                                           search_tags_es='hipotecas')
     self.answer5678.save()
     self.page2 = AnswerPage(language='en',
                             slug='mock-question2-en-5678',
                             title='Mock question2',
                             answer_base=self.answer5678,
                             answer='Mock answer 2',
                             question='Mock question2',
                             search_tags='hippodrome')
     self.english_parent_page.add_child(instance=self.page2)
     self.page2.save_revision().publish()
예제 #27
0
 def setUp(self):
     self.test_user = User.objects.get(pk=1)
     self.factory = RequestFactory()
     ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.category = mommy.make(
         Category, name='stub_cat', name_es='que', slug='stub-cat')
     self.category.save()
     self.test_image = mommy.make(CFGOVImage)
     self.test_image2 = mommy.make(CFGOVImage)
     self.next_step = mommy.make(NextStep, title='stub_step')
     self.portal_topic = mommy.make(
         PortalTopic,
         heading='test topic',
         heading_es='prueba tema')
     page_clean = mock.patch('ask_cfpb.models.pages.CFGOVPage.clean')
     page_clean.start()
     self.addCleanup(page_clean.stop)
     self.portal_page = SublandingPage(
         title='test portal page',
         slug='test-portal-page',
         portal_topic=self.portal_topic,
         language='en'
     )
     ROOT_PAGE.add_child(instance=self.portal_page)
     self.portal_page.save()
     self.portal_page.save_revision().publish()
     self.portal_page_es = SublandingPage(
         title='test portal page',
         slug='test-portal-page-es',
         portal_topic=self.portal_topic,
         language='es'
     )
     ROOT_PAGE.add_child(instance=self.portal_page_es)
     self.portal_page_es.save()
     self.portal_page_es.save_revision().publish()
     self.english_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Ask CFPB',
         ENGLISH_PARENT_SLUG,
         ROOT_PAGE,
         language='en',
         live=True)
     self.spanish_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Obtener respuestas',
         SPANISH_PARENT_SLUG,
         ROOT_PAGE,
         language='es',
         live=True)
     self.tag_results_page_en = get_or_create_page(
         apps,
         'ask_cfpb',
         'TagResultsPage',
         'Tag results page',
         'search-by-tag',
         ROOT_PAGE,
         language='en',
         live=True)
     self.tag_results_page_es = get_or_create_page(
         apps,
         'ask_cfpb',
         'TagResultsPage',
         'Tag results page',
         'buscar-por-etiqueta',
         ROOT_PAGE,
         language='es',
         live=True)
     self.answer1234 = Answer(id=1234)
     self.answer1234.save()
     self.page1 = AnswerPage(
         language='en',
         answer_base=self.answer1234,
         slug='mock-question-en-1234',
         title='Mock question1',
         answer_content='Mock answer 1',
         question='Mock question1',
         search_tags='hippodrome')
     self.english_parent_page.add_child(instance=self.page1)
     self.page1.save_revision().publish()
     self.page1_es = AnswerPage(
         language='es',
         slug='mock-spanish-question1-es-1234',
         title='Mock Spanish question1',
         answer_base=self.answer1234,
         answer_content='Mock Spanish answer',
         question='Mock Spanish question1',
         search_tags='hipotecas')
     self.spanish_parent_page.add_child(instance=self.page1_es)
     self.page1_es.save_revision().publish()
     self.answer5678 = Answer(id=5678)
     self.answer5678.save()
     self.page2 = AnswerPage(
         language='en',
         slug='mock-question2-en-5678',
         title='Mock question2',
         answer_base=self.answer5678,
         answer_content='Mock answer 2',
         question='Mock question2',
         search_tags='hippodrome')
     self.english_parent_page.add_child(instance=self.page2)
     self.page2.save_revision().publish()
 def setUp(self):
     self.site = Site.objects.get(is_default_site=True)
     self.root_page = self.site.root_page
     self.portal_topic = baker.make(PortalTopic,
                                    heading="test topic",
                                    heading_es="prueba tema")
     self.en_portal_category = baker.make(PortalCategory,
                                          heading="test_english_heading")
     self.es_portal_category = baker.make(PortalCategory,
                                          heading="test_spanish_heading")
     self.en_portal_page = SublandingPage(
         title="test English portal page",
         slug="test-en-portal-page",
         portal_topic=self.portal_topic,
         language="en",
     )
     self.es_portal_page = SublandingPage(
         title="test Spanish portal page",
         slug="test-es-portal-page",
         portal_topic=self.portal_topic,
         language="es",
     )
     self.root_page.add_child(instance=self.en_portal_page)
     self.en_portal_page.save()
     self.en_portal_page.save_revision().publish()
     self.en_parent_page = get_or_create_page(
         apps,
         "ask_cfpb",
         "AnswerLandingPage",
         "Ask CFPB",
         ENGLISH_PARENT_SLUG,
         self.root_page,
         language="en",
         live=True,
     )
     self.es_parent_page = get_or_create_page(
         apps,
         "ask_cfpb",
         "AnswerLandingPage",
         "Obtener respuestas",
         SPANISH_PARENT_SLUG,
         self.root_page,
         language="es",
         live=True,
     )
     self.answer = Answer(id=1234)
     self.answer.save()
     self.en_page = AnswerPage(
         language="en",
         slug="test-english-question-en-1234",
         title="Test English question",
         answer_base=self.answer,
         answer_content="Test English answer",
         question="Test English question",
         search_tags="English",
     )
     self.es_page = AnswerPage(
         language="es",
         slug="test-spanish-question-es-1234",
         title="Test Spanish question",
         answer_base=self.answer,
         answer_content="Test Spanish answer",
         question="Test Spanish question",
         search_tags="Spanish",
     )
     self.doc = AnswerPageDocument()
예제 #29
0
 def setUp(self):
     self.test_user = User.objects.get(pk=1)
     self.ROOT_PAGE = HomePage.objects.get(slug="cfgov")
     self.category = baker.make(
         Category, name="stub_cat", name_es="que", slug="stub-cat"
     )
     self.category.save()
     self.test_image = baker.make(CFGOVImage)
     self.test_image2 = baker.make(CFGOVImage)
     self.next_step = baker.make(NextStep, title="stub_step")
     self.portal_topic = baker.make(
         PortalTopic, heading="test topic", heading_es="prueba tema"
     )
     page_clean = mock.patch("ask_cfpb.models.pages.CFGOVPage.clean")
     page_clean.start()
     self.addCleanup(page_clean.stop)
     self.portal_page = SublandingPage(
         title="test portal page",
         slug="test-portal-page",
         portal_topic=self.portal_topic,
         language="en",
     )
     self.ROOT_PAGE.add_child(instance=self.portal_page)
     self.portal_page.save()
     self.portal_page.save_revision().publish()
     self.portal_page_es = SublandingPage(
         title="test portal page",
         slug="test-portal-page-es",
         portal_topic=self.portal_topic,
         language="es",
     )
     self.ROOT_PAGE.add_child(instance=self.portal_page_es)
     self.portal_page_es.save()
     self.portal_page_es.save_revision().publish()
     self.english_parent_page = get_or_create_page(
         apps,
         "ask_cfpb",
         "AnswerLandingPage",
         "Ask CFPB",
         ENGLISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language="en",
         live=True,
     )
     self.spanish_parent_page = get_or_create_page(
         apps,
         "ask_cfpb",
         "AnswerLandingPage",
         "Obtener respuestas",
         SPANISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language="es",
         live=True,
     )
     self.tag_results_page_en = get_or_create_page(
         apps,
         "ask_cfpb",
         "TagResultsPage",
         "Tag results page",
         "search-by-tag",
         self.ROOT_PAGE,
         language="en",
         live=True,
     )
     self.tag_results_page_es = get_or_create_page(
         apps,
         "ask_cfpb",
         "TagResultsPage",
         "Tag results page",
         "buscar-por-etiqueta",
         self.ROOT_PAGE,
         language="es",
         live=True,
     )
     self.answer1234 = Answer(id=1234)
     self.answer1234.save()
     self.page1 = AnswerPage(
         language="en",
         answer_base=self.answer1234,
         slug="mock-question-en-1234",
         title="Mock question1",
         answer_content="Mock answer 1",
         question="Mock question1",
         search_tags="hippodrome",
     )
     self.english_parent_page.add_child(instance=self.page1)
     self.page1.save_revision().publish()
     self.page1_es = AnswerPage(
         language="es",
         slug="mock-spanish-question1-es-1234",
         title="Mock Spanish question1",
         answer_base=self.answer1234,
         answer_content="Mock Spanish answer",
         question="Mock Spanish question1",
         search_tags="hipotecas",
     )
     self.spanish_parent_page.add_child(instance=self.page1_es)
     self.page1_es.save_revision().publish()
     self.answer5678 = Answer(id=5678)
     self.answer5678.save()
     self.page2 = AnswerPage(
         language="en",
         slug="mock-question2-en-5678",
         title="Mock question2",
         answer_base=self.answer5678,
         answer_content="Mock answer 2",
         question="Mock question2",
         search_tags="hippodrome",
     )
     self.english_parent_page.add_child(instance=self.page2)
     self.page2.save_revision().publish()
예제 #30
0
 def setUp(self):
     from v1.models import HomePage
     ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.audience = mommy.make(Audience, name='stub_audience')
     self.category = mommy.make(Category, name='stub_cat', name_es='que')
     self.subcategories = mommy.make(SubCategory,
                                     name='stub_subcat',
                                     parent=self.category,
                                     _quantity=3)
     self.category.subcategories.add(self.subcategories[0])
     self.category.save()
     self.test_image = mommy.make(CFGOVImage)
     self.test_image2 = mommy.make(CFGOVImage)
     self.next_step = mommy.make(NextStep, title='stub_step')
     page_clean = patch('ask_cfpb.models.pages.CFGOVPage.clean')
     page_clean.start()
     self.addCleanup(page_clean.stop)
     self.english_parent_page = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'AnswerLandingPage',
                                                   'Ask CFPB',
                                                   ENGLISH_PARENT_SLUG,
                                                   ROOT_PAGE,
                                                   language='en',
                                                   live=True)
     self.spanish_parent_page = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'AnswerLandingPage',
                                                   'Obtener respuestas',
                                                   SPANISH_PARENT_SLUG,
                                                   ROOT_PAGE,
                                                   language='es',
                                                   live=True)
     self.tag_results_page_en = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'TagResultsPage',
                                                   'Tag results page',
                                                   'search-by-tag',
                                                   ROOT_PAGE,
                                                   language='en',
                                                   live=True)
     self.tag_results_page_es = get_or_create_page(apps,
                                                   'ask_cfpb',
                                                   'TagResultsPage',
                                                   'Tag results page',
                                                   'buscar-por-etiqueta',
                                                   ROOT_PAGE,
                                                   language='es',
                                                   live=True)
     self.answer1234 = self.prepare_answer(
         id=1234,
         answer='Mock answer 1',
         answer_es='Mock Spanish answer',
         slug='mock-answer-en-1234',
         slug_es='mock-spanish-answer-es-1234',
         question='Mock question1',
         question_es='Mock Spanish question1',
         search_tags='hippodrome',
         search_tags_es='hipotecas',
         update_english_page=True,
         update_spanish_page=True)
     self.answer1234.save()
     self.page1 = self.answer1234.english_page
     self.page1.live = True
     self.page1.save()
     self.page1_es = self.answer1234.spanish_page
     self.page1_es.live = True
     self.page1_es.save()
     self.answer5678 = self.prepare_answer(id=5678,
                                           answer='Mock answer 2',
                                           question='Mock question2',
                                           search_tags='hippodrome',
                                           search_tags_es='hipotecas')
     self.answer5678.save()
     self.page2 = self.create_answer_page(slug='mock-answer-page-en-5678')
     self.page2.answer_base = self.answer5678
     self.page2.parent = self.english_parent_page
     self.page2.save()
예제 #31
0
 def setUp(self):
     from v1.models import HomePage
     ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.audience = mommy.make(Audience, name='stub_audience')
     self.category = mommy.make(Category, name='stub_cat', name_es='que')
     self.subcategories = mommy.make(
         SubCategory, name='stub_subcat', parent=self.category, _quantity=3)
     self.category.subcategories.add(self.subcategories[0])
     self.category.save()
     self.test_image = mommy.make(CFGOVImage)
     self.test_image2 = mommy.make(CFGOVImage)
     self.next_step = mommy.make(NextStep, title='stub_step')
     page_clean = patch('ask_cfpb.models.pages.CFGOVPage.clean')
     page_clean.start()
     self.addCleanup(page_clean.stop)
     self.english_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Ask CFPB',
         ENGLISH_PARENT_SLUG,
         ROOT_PAGE,
         language='en',
         live=True)
     self.spanish_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Obtener respuestas',
         SPANISH_PARENT_SLUG,
         ROOT_PAGE,
         language='es',
         live=True)
     self.tag_results_page_en = get_or_create_page(
         apps,
         'ask_cfpb',
         'TagResultsPage',
         'Tag results page',
         'search-by-tag',
         ROOT_PAGE,
         language='en',
         live=True)
     self.tag_results_page_es = get_or_create_page(
         apps,
         'ask_cfpb',
         'TagResultsPage',
         'Tag results page',
         'buscar-por-etiqueta',
         ROOT_PAGE,
         language='es',
         live=True)
     self.answer1234 = self.prepare_answer(
         id=1234,
         answer='Mock answer 1',
         answer_es='Mock Spanish answer',
         slug='mock-answer-en-1234',
         slug_es='mock-spanish-answer-es-1234',
         question='Mock question1',
         question_es='Mock Spanish question1',
         search_tags='hippodrome',
         search_tags_es='hipotecas',
         update_english_page=True,
         update_spanish_page=True)
     self.answer1234.save()
     self.page1 = self.answer1234.english_page
     self.page1_es = self.answer1234.spanish_page
     self.answer5678 = self.prepare_answer(
         id=5678,
         answer='Mock answer 2',
         question='Mock question2',
         search_tags='hippodrome',
         search_tags_es='hipotecas')
     self.answer5678.save()
     self.page2 = self.create_answer_page(slug='mock-answer-page-en-5678')
     self.page2.answer_base = self.answer5678
     self.page2.parent = self.english_parent_page
     self.page2.save()
예제 #32
0
 def setUp(self):
     from v1.models import HomePage
     from ask_cfpb.models import Answer
     self.ROOT_PAGE = HomePage.objects.get(slug='cfgov')
     self.english_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Ask CFPB',
         ENGLISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language='en',
         live=True)
     self.spanish_parent_page = get_or_create_page(
         apps,
         'ask_cfpb',
         'AnswerLandingPage',
         'Obtener respuestas',
         SPANISH_PARENT_SLUG,
         self.ROOT_PAGE,
         language='es',
         live=True)
     self.test_answer = mommy.make(
         Answer,
         answer="Test answer1.",
         question="Test question1.",
         slug='test-question1')
     self.test_answer2 = mommy.make(
         Answer,
         answer="Test answer2.",
         question="Test question2.",
         slug='test-question2')
     self.english_answer_page = AnswerPage(
         answer_base=self.test_answer,
         answer_id=self.test_answer.pk,
         language='en',
         slug='test-question1-en-{}'.format(self.test_answer.pk),
         title='Test question1',
         answer='Test answer1.',
         question='Test question1.')
     self.english_parent_page.add_child(instance=self.english_answer_page)
     self.english_answer_page.save_revision().publish()
     self.english_answer_page2 = AnswerPage(
         answer_base=self.test_answer2,
         answer_id=self.test_answer2.pk,
         language='en',
         slug='test-question2-en-{}'.format(self.test_answer2.pk),
         title='Test question2',
         answer='Test answer2.',
         question='Test question2.')
     self.english_parent_page.add_child(instance=self.english_answer_page2)
     self.english_answer_page2.save_revision().publish()
     self.site = mommy.make(
         Site,
         root_page=self.ROOT_PAGE,
         hostname='localhost',
         port=8000,
         is_default_site=True)
     self.sharing_site = mommy.make(
         SharingSite,
         site=self.site,
         hostname='preview.localhost',
         port=8000)