Пример #1
0
    def test_multiple_pages(self):
        # create a user to test
        user = User.objects.create()

        # create a and save page to DB
        Page(title='My test page', content='test', author=user)
        Page(title='Another test page', content='test again', author=user)

        response = self.client.get('/')

        self.assertEqual(response.status_code, 200)
Пример #2
0
    def test_page_slugify_on_save(self):
        """ Test if we generate the proper slug. """
        user = User()
        user.save()

        page = Page(title="My Test Page", content="Test", author=user)
        page.save()

        page1 = Page(title="My Second - / Test Page",
                     content="secont test",
                     author=user)
        self.assertEqual(page.slug, "my-test-page")
Пример #3
0
    def setUp(self):
        #Settings are kept in between tests, so we need to reset this:
        settings.IS_TESTING_WIKI = False
        #Make sure we create a user and sign up for a wiki first.
        User.objects.create_user('test', '*****@*****.**', 'test')
        self.assertTrue(self.client.login(username='******', password='******'))
        #Now create a wiki:
        r = self.client.post(
            '/signup/',
            {
                'subdomain': 'mywiki',
                #'submit': 'Claim',
                'title': 'My Excellent Wiki',
            })
        self.failUnlessEqual(r.status_code, 302)  #redirect

        #Now we force the middleware to pretend that we're in a subdomain.
        settings.IS_TESTING_WIKI = True

        #Create a HomePage so that settings can be set.
        w = Wiki.objects.get(tag='mywiki')
        p = Page()
        p.wiki = w
        p.tag = 'HomePage'
        p.content = 'Welcome to your new wiki!'
        p.ip_address = '127.0.0.1'
        p.save()
Пример #4
0
    def test_page(self):
        response = self.client.get(self.addr, follow=True)
        self.assertRedirects(response, reverse('login') + "?next=" + self.addr)

        self.client.login(username="******", password="******")
        response = self.client.get(self.addr, follow=True)
        self.assertEqual(response.status_code, 200)
        for x in ('All Pages', 'Page Name',
                  'No wiki pages have been added yet'):
            self.assertContains(response, x)

        page = Page(slug="page")
        page.save()
        revision = Revision(page=page,
                            content="page",
                            content_html="",
                            created_ip="0.0.0.0",
                            created_at=datetime.now(),
                            created_by=self.u)
        revision.save()

        response = self.client.get(self.addr, follow=True)
        self.assertEqual(response.status_code, 200)
        for x in ('Page', 'Last Edited', 'page'):
            self.assertContains(response, x)
Пример #5
0
    def test_page_slugify_on_save(self):
        user = User()
        user.save()

        page = Page(title="My Test Page", content="test", author=user)
        page.save()

        self.assertEqual(page.slug, "my-test-page")
Пример #6
0
 def test_page_slugify_on_save(self):
     """ Tests the slug generated when saving a page"""
     # Create a user for this test
     user = User()
     user.save()
     #  Create and save Page to DB.
     page = Page(title="My Test Page", content="test", author=user)
     page.save()
     self.assertEqual(page.slug, 'my-test-page')
Пример #7
0
    def test_was_published_recently_with_future_page(self):
        """
        was_published_recently() returns False for questions whose pub_date
        is in the future.
        """

        time = timezone.now() + datetime.timedelta(days=30)
        future_question = Page(pub_date=time)
        self.assertIs(future_question.was_published_recently(), False)
Пример #8
0
    def test_page_slugify_on_save(self):
        """ Tests the slug generated when saving a Page. """
        user = User()
        user.save()

        page = Page(title="My Test Page", content="test", author=user)
        page.save()

        self.assertEqual(page.slug, "my-test-page")
Пример #9
0
    def test_page_slugify_on_save(self):
        """ Tests the slug generated when saving a page """
        user = User()
        user.save()

        page = Page(title="My Test Page", content="test", author=user)
        page.save()
        #Make sure the slug that was generated in Page.save() matches what we think it should be
        self.assertEqual(page.slug, "my-test-page")
Пример #10
0
 def __init__(self, user, page_tag):
     self.user = user
     self.page_tag = page_tag
     #Get page object
     try:
         self.page = Page.objects.filter(wiki = settings.WIKI, tag = page_tag).order_by('-id')[0]
     except IndexError:
         #If page doesn't exist, we pass a dummy Page object in so that we
         #use global perm. We need to set the Wiki object.
         self.page = Page(wiki = settings.WIKI)
Пример #11
0
    def test_page_slugify_on_save(self):
        """Test the slug generated when saving a Page."""
        #Create a user to properly test code
        user = User()
        user.save()

        page = Page(title="My Test Page", content="test", author=user)
        page.save()

        self.assertEqual(page.slug, 'my-test-page')
Пример #12
0
def save_page(request, page_name):
    content = request.POST['content']
    try:
        page = Page.objects.get(pk=page_name)
        page.content = content
    except Page.DoesNotExist:
        page = Page(name=page_name, content=content)
    page.save()
    page = RequestContext(request, {'page': page})
    return HttpResponseRedirect("/wiki/" + page_name + "/")
Пример #13
0
    def test_single_page(self):
        user = User.objects.create()

        page = Page(title="Test Page", content="Test", author=user)
        page.save()

        response = self.client.get(
            reverse('wiki-details-page', args=[page.slug]))

        self.assertEqual(response.status_code, 200)
Пример #14
0
    def test_page_slugify_on_save(self):
        """ Tests the slug generated when ssaving a Page. """
        # Create a user for this test.
        user = User()
        user.save()

        # Create and save Page to database
        page = Page(title="My Test Page", content="test")
        page.save()

        self.assertEqual(page.slug, 'my-test-page')
Пример #15
0
def addPage(request):
    """
    A view to create a new wiki page, or save an addition in progress
    """
    name = request.matchdict['pagename']
    if 'form.submitted' in request.params:
        session = DBSession()
        body = request.params['body']
        page = Page(name, body)
        session.add(page)
        result = HTTPFound(
            location=route_url('viewPage', request, pagename=name))
    else:
        result = {
            'page': Page('', ''),
            'save_url': route_url('addPage', request, pagename=name),
            'logged_in': authenticated_userid(request)
        }

    return result
Пример #16
0
    def test_page_slugify_on_save(self):
        '''test the slug generated when saving a page'''

        # create a user to test
        user = User()
        user.save()

        # create a and save page to DB
        page = Page(title='My test page', content='test', author=user)
        page.save()

        self.assertEqual(page.slug, 'my-test-page')
Пример #17
0
    def test_page_load(self):
        '''tests to make sure the page is loading properly'''
        # create a user to test
        user = User.objects.create()

        # create a and save page to DB
        page = Page(title='My test page', content='test', author=user)
        page.save()

        response = self.client.get(f'/{page.slug}')

        self.assertEqual(response.status_code, 301)
Пример #18
0
    def test_page_contents(self):
        '''tests if the page is displaying correctly'''
        # create a user to test
        user = User.objects.create()

        # create a and save page to DB
        page = Page(title='My test page', content='test', author=user)
        page.save()

        response = self.client.get(f'/{page.slug}')

        self.assertEqual(response.page.title, 'my test page')
Пример #19
0
    def test_page_slugify_on_save(self):
        """ Tests the slug generated when saving a page """
        user = User()
        user.save()

        page = Page(
            title="Charmander's Bio",
            content=
            "Charmander, known as Hitokage in Japan, is a Pokémon species in Nintendo's and Game Freak's Pokémon franchise.",
            author=user)
        page.save()
        #Make sure the slug that was generated in Page.save() matches what we think it should be
        self.assertEqual(page.slug, "charmanders-bio")
Пример #20
0
    def test_page_slugify_on_save(self):
        """ Tests the slug generated when saving a Page."""
        # Author is a required field in our model.
        # Create a user for this test and save it to the test database.
        user = User()
        user.save()

        # Create and save a new page to the test database.
        page = Page(title="My Test Page", content="test", author=user)
        page.save()

        # Make sure the slug that was generated in Page.save() matches the one we think it should be.
        self.assertEqual(page.slug, "my-test-page")
Пример #21
0
    def test_page_edit(self):
        user = User.objects.create()
        user.save()
        page = Page(title="New Test Page",
                    content="this is a test.",
                    author=user)
        page.save()

        self.assertEqual(page.slug, "new-test-page")
        edit_info = {'title': 'A New Name', 'content': 'Some New Contetnet'}
        response = self.client.post(f'/page/{page.slug}/', edit_info)
        self.assertEqual(response.status_code, 302)
        page = Page.objects.get(id=1)
        self.assertEqual(page.title, 'A New Name')
Пример #22
0
    def test_detail_page(self):
        user = User.objects.create()
        user.save()
        page = Page(title="New Test Page",
                    content="this is a test.",
                    author=user)
        page.save()

        self.assertEqual(page.slug, "new-test-page")

        response = self.client.get(f'/page/{page.slug}/')

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "this is a test.")
Пример #23
0
def save_page(request, page_name):
    content = request.POST.get("content", "")
    cate = request.POST.get("cate", "")
    try:
        page = Page.objects.get(
            pk=page_name.replace("?", "__").replace("/", "^^"))
        page.content = content
        page.cate = cate
    except Page.DoesNotExist:
        page = Page(name=page_name.replace("?", "__").replace("/", "^^"),
                    content=content,
                    cate=cate)
    page.save()
    return HttpResponseRedirect("/wiki/" + page_name + "/")
Пример #24
0
def get_page_or_temp(title):
    """
    Attempts to retrieve a page from the provided id, otherwise returns
    a new page with using the provided id as its title.

    :param title: id of the page.
    :return: page matching provided id or temporary blank page.
    """
    page = get_page(title)

    if page is None:
        page = Page(page_title=title)

    return page
Пример #25
0
    def test_page_slugify_on_save(self):  #Model's integration test
        """ Tests the slug generated when saving a Page. """
        # Author is a required field in our model.
        # Create a user for this test and save it to the test database.
        #user = User.objects.create() #creates and saves a user just like the 2 lines below
        user = User()
        user.save()

        # Create and save a new page to the test database.
        page = Page(title="My Test Page", content="test", author=user)
        page.save()

        # Make sure the slug that was generated in Page.save()
        # matches what we think it should be.
        self.assertEqual(page.slug, "my-test-page")
Пример #26
0
def edit(req, pagename):
    if req.user.get_profile().banned:
        return HttpResponseRedirect(
            "/wiki/%s?error=%s" %
            (pagename, "Sorry banned users can't edit the wiki"))

    try:
        page = Page.objects.get(title__iexact=pagename)
    except:
        page = None

    if page and page.op_only and not req.user.is_staff:
        return HttpResponseRedirect(
            "/wiki/%s?error=%s" %
            (pagename, "Sorry only operators edit this page."))

    if req.POST.has_key('body'):  # We should save something
        #if req.POST.has_key( 'base_rev' ):
        # ^ TODO: Add super merging fun time.
        # ^ TODO: Add op-only check.

        if not page:
            page = Page(title=pagename, op_only=False)
            page.save()

        rev = Revision(author=req.user,
                       pub_date=datetime.datetime.now(),
                       body=req.POST['body'],
                       page=page)
        rev.save()
        return HttpResponseRedirect("/wiki/%s" % pagename)

    if page:
        # try to fetch the last our last revision.
        revision = page.get_last_revision()
        wiki_title = page.title.replace('_', ' ')

    else:
        revision = None
        wiki_title = pagename.replace('_', ' ')

    c = RequestContext(req, {
        'wiki_title': wiki_title,
        'pagename': pagename,
        'revision': revision
    })

    return render_to_response("wiki/edit.html", c)
Пример #27
0
def EditPage(request, title):
    try:
        page = Page.objects.get(title=title)
    except Page.DoesNotExist:
        page = Page(title=title, content="")

    if request.method == 'GET':
        form = PageForm(instance=page)
        return render(request, 'wiki/edit.html', {'page': page, 'form': form})

    if request.method == 'POST':
        form = PageForm(request.POST, instance=page)
        form.save()
        #page.content = request.POST['content']
        #page.save()
        return HttpResponseRedirect(reverse('wiki:wikipage', args=(title, )))
Пример #28
0
def save_add(request):
    content = request.POST.get("content", "")
    page_name = request.POST.get("page_name", "")
    cate = request.POST.get("cate", "")
    date = request.POST.get("date", "")
    try:
        page = Page.objects.get(
            pk=page_name.replace("?", "__").replace("/", "^^"))
        return render_to_response("add.html", {"error": "Name already exist"})
    except Page.DoesNotExist:
        page = Page(name=page_name.replace("?", "__").replace("/", "^^"),
                    content=content,
                    cate=cate,
                    date=date)
        page.save()
        return HttpResponseRedirect("/browse")
Пример #29
0
def add_details(request, page_name):
    msg = {}
    if request.method == 'POST':
        content = request.POST.get("content", "")
        cate = request.POST.get("cate", "")
        date = request.POST.get("date", "")
        try:
            page = Page.objects.get(pk=page_name)
            page.content = content
            page.cate = cate
            page.date = date
            msg["status"] = "200 OK"
        except Page.DoesNotExist:
            page = Page(name=page_name, content=content, cate=cate, date=date)
            msg["status"] = "201 Empty"
        page.save()
    else:
        msg["status"] = "202 Invalid"
    return JsonResponse(msg)
Пример #30
0
 def post(self, request, slug):
     form = PageForm(request.POST)
     if form.is_valid():
         obj = Page()
         obj.title = form.cleaned_data['title']
         obj.author = form.cleaned_data['author']
         obj.slug = form.cleaned_data['slug']
         obj.email = form.cleaned_data['email']
         obj.content = form.cleaned_data['content']
         obj.save()
         messages.add_message(request, messages.INFO,
                              obj.title + ' has been successfully updated')
         return HttpResponseRedirect(reverse('wiki-list-page'))
     else:
         form = PageForm()
         page = Page.objects.get(slug=slug)
         return render(request, 'wiki/page.html', {
             'page': page,
             'form': form
         })