123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #! /usr/bin/env python3
- #
- # BitBake Toaster Implementation
- #
- # Copyright (C) 2013-2016 Intel Corporation
- #
- # SPDX-License-Identifier: GPL-2.0-only
- #
- from django.urls import reverse
- from tests.browser.selenium_helpers import SeleniumTestCase
- from selenium.webdriver.support.ui import Select
- from selenium.common.exceptions import InvalidElementStateException
- 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 unique project name error message")
- # Try and click it anyway, if it submits we'll have a new project in
- # the db and assert then
- try:
- self.click("#create-project-button")
- except InvalidElementStateException:
- pass
- self.assertTrue(
- (Project.objects.filter(name=project_name).count() == 1),
- "New project not found in database")
|