Looks good, but one typo (see below). I'm happy for you to upstream it.
Elliot On 9 May 2016 at 16:27, Michael Wood <[email protected]> wrote: > Add browser tests for creating a project and test validation of > duplicate project names. > > Signed-off-by: Michael Wood <[email protected]> > --- > .../toaster/tests/browser/test_new_project_page.py | 109 > +++++++++++++++++++++ > 1 file changed, 109 insertions(+) > create mode 100644 > bitbake/lib/toaster/tests/browser/test_new_project_page.py > > diff --git a/bitbake/lib/toaster/tests/browser/test_new_project_page.py > b/bitbake/lib/toaster/tests/browser/test_new_project_page.py > new file mode 100644 > index 0000000..b9358ab > --- /dev/null > +++ b/bitbake/lib/toaster/tests/browser/test_new_project_page.py > @@ -0,0 +1,109 @@ > +#! /usr/bin/env python > +# ex:ts=4:sw=4:sts=4:et > +# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- > +# > +# BitBake Toaster Implementation > +# > +# Copyright (C) 2013-2016 Intel Corporation > +# > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License version 2 as > +# published by the Free Software Foundation. > +# > +# 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 Street, Fifth Floor, Boston, MA 02110-1301 USA. > + > +from django.core.urlresolvers import reverse > +from tests.browser.selenium_helpers import SeleniumTestCase > +from selenium.webdriver.support.ui import Select > + > +from orm.models import Project, Release, BitbakeVersion > + > + > +class TestNewProjectPage(SeleniumTestCase): > + """ Test project data at /project/X/ is displayed correctly """ > + > + def setUp(self): > + bitbake, c = BitbakeVersion.objects.get_or_create( > + name="master", > + giturl="git://master", > + branch="master", > + dirpath="master") > + > + release, c = Release.objects.get_or_create(name="msater", > + description="master" > + "release", > + branch_name="master", > + helptext="latest", > + > bitbake_version=bitbake) > + > + self.release, c = Release.objects.get_or_create( > + name="msater2", > + description="master2" > + "release2", > + branch_name="master2", > + helptext="latest2", > + bitbake_version=bitbake) > + > + def test_create_new_project(self): > + """ Test creating a project """ > + > + project_name = "masterproject" > + > + url = reverse('newproject') > + self.get(url) > + > + self.enter_text('#new-project-name', project_name) > + > + select = Select(self.find('#projectversion')) > + select.select_by_value(str(self.release.pk)) > + > + self.click("#create-project-button") > + > + # We should get redirected to the new project's page with the > + # notification at the top > + element = self.wait_until_visible('#project-created-notification') > + > + self.assertTrue(project_name in element.text, > + "New project name not in new project > notification") > + > + self.assertTrue(Project.objects.filter(name=project_name).count(), > + "New project not found in database") > + > + def test_new_duplicates_project_name(self): > + """ > + Should not be able to create a new project whose name is the same > + as an existing project > + """ > + > + project_name = "dupproject" > + > + Project.objects.create_project(name=project_name, > + release=self.release) > + > + url = reverse('newproject') > + self.get(url) > + > + self.enter_text('#new-project-name', project_name) > + > + select = Select(self.find('#projectversion')) > + select.select_by_value(str(self.release.pk)) > + > + element = self.wait_until_visible('#hint-error-project-name') > + > + self.assertTrue(("Project names must be unique" in element.text), > + "Did not find unqiue project name error message") > TYPO: unqiue -> unique > + > + # Try and click it anyway, if it submits we'll have a new project > in > + # the db and assert then > + self.click("#create-project-button") > + > + self.assertTrue( > + (Project.objects.filter(name=project_name).count() == 1), > + "New project not found in database") > -- > 2.7.4 > > -- > _______________________________________________ > toaster mailing list > [email protected] > https://lists.yoctoproject.org/listinfo/toaster > -- Elliot Smith Software Engineer Intel Open Source Technology Centre
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
