def test_rebuild_index_command_general_page_model(self): page = GeneralPage( slug="page", name="Page", template="template.html", url_name="url", ) page.save() management.call_command("rebuild_index", "--noinput")
def test_rebuild_index_command_general_page_with_invalid_template(self): page = GeneralPage( slug="page", name="Page", template="template_without_id.html", url_name="url", ) page.save() self.assertRaises(TemplateSyntaxError, management.call_command, "rebuild_index", "--noinput")
def load(self): """Load general pages. Raise: MissingRequiredFieldError: when no object can be found with the matching attribute. """ general_pages = self.load_yaml_file(self.structure_file_path) for (slug, page_data) in general_pages.items(): try: name = page_data["name"] template = page_data["template"] url_name = page_data["url-name"] except (TypeError, KeyError): raise MissingRequiredFieldError(self.structure_file_path, [ "name", "template", "url-name", ], "General page") # Check template is valid try: get_template(template) except TemplateDoesNotExist: raise InvalidYAMLValueError(self.structure_file_path, "template", "A valid template file path") # Check URL name is valid try: reverse(url_name) except NoReverseMatch: raise InvalidYAMLValueError( self.structure_file_path, "url-name", "A URL name listed in 'csunplugged/general/urls.py'") general_page = GeneralPage( slug=slug, name=name, template=template, url_name=url_name, ) general_page.save() self.log("Added general page: {}".format(name)) self.log("All general pages loaded!\n")