view tests/testBranches.py @ 103:8a9fdf02bf5b

Don't allow a GET request to modify the server state
author Benoît Allard <benoit.allard@greenbone.net>
date Tue, 14 Oct 2014 10:36:12 +0200
parents c00f20bd90ba
children
line wrap: on
line source
# -*- encoding: utf-8 -*-
# Description:
# Short Description
#
# Authors:
# BenoƮt Allard <benoit.allard@greenbone.net>
#
# Copyright:
# Copyright (C) 2014 Greenbone Networks GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

from .utils import TestCase

class TestBranches(TestCase):

    def testAddBranch(self):
        rv = self.createDoc('Title', 'Type')
        self.assertEqual(rv.status_code, 200)
        rv = self.app.post('/producttree/create')
        rv = self.app.get('/producttree/branch/add')
        rv = self.app.post('/producttree/branch/add', data=dict(type="Vendor", name="SecPod", parent=""))

    def testAddTwoBranch(self):
        rv = self.createDoc('Title', 'Type')
        self.assertEqual(rv.status_code, 200)
        rv = self.app.post('/producttree/create')
        rv = self.app.get('/producttree/branch/add')
        rv = self.app.post('/producttree/branch/add', data=dict(type="Vendor", name="SecPod", parent=""))
        rv = self.app.get('/producttree/branch/add')
        self._assertIn('<option value="0"', rv)
        rv = self.app.post('/producttree/branch/add', data=dict(type="Product Name", name="Saner", parent="0"), follow_redirects=True)
        self._assertIn('<a href="/producttree/branch/0/0/edit">edit</a>', rv)

    def testEditBranch(self):
        self.createDoc('Title', 'Type')
        rv = self.app.post('/producttree/create', follow_redirects=True)
        rv = self.app.post('/producttree/branch/add', data=dict(type="Vendor", name="SecPod", parent=""))
        rv = self.app.get('/producttree/branch/0/edit')
        rv = self.app.post('/producttree/branch/add', data=dict(type="Product Name", name="Saner", parent="0"))
        rv = self.app.get('/producttree/branch/0/0/edit')
        rv = self.app.post('/producttree/branch/0/0/edit', data=dict(type="Vendor", name="Other", parent=""), follow_redirects=True)
        self._assertIn('<a href="/producttree/branch/1/edit">edit</a>', rv)

    def testDeleteBranch(self):
        rv = self.createDoc('Title', 'Type')
        self.assertEqual(rv.status_code, 200)
        rv = self.app.post('/producttree/create')
        rv = self.app.get('/producttree/branch/add')
        rv = self.app.post('/producttree/branch/add', data=dict(type="Vendor", name="SecPod", parent=""))
        rv = self.app.post('/producttree/branch/0/del', follow_redirects=True)
        self.assertEqual(rv.status_code, 200)

http://farol.wald.intevation.org