Ejemplo n.º 1
0
    def setUpTestData(cls):
        cls.product_name = 'StarCraft'
        cls.versions = ['0.6', '0.7', '0.8', '0.9', '1.0']

        cls.product = ProductFactory(name=cls.product_name)
        cls.product_versions = [
            VersionFactory(product=cls.product, value=version)
            for version in cls.versions
        ]
Ejemplo n.º 2
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory()
        self.build = self.product.build.first()
        self.plan = TestPlanFactory(author=self.api_user,
                                    product=self.product,
                                    product_version=self.version)
Ejemplo n.º 3
0
    def _fixture_setup(self):
        super(TestBuildGetRuns, self)._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory(value='0.1', product=self.product)
        self.build = TestBuildFactory(product=self.product)
        self.user = UserFactory()
        self.test_run = TestRunFactory(manager=self.user, default_tester=None,
                                       build=self.build)
Ejemplo n.º 4
0
    def test_product_delete_with_test_plan_wo_email_settings(self):
        """
            A test to demonstrate Issue #181.

            Steps to reproduce:
            1) Create a new Product
            2) Create a new Test Plan for Product
            3) DON'T edit the Test Plan
            4) Delete the Product

            Expected results:
            0) No errors
            1) Product is deleted
            2) Test Plan is deleted
        """
        # setup
        product = ProductFactory(name='Something to delete')
        product_version = VersionFactory(value='0.1', product=product)
        plan_type = PlanTypeFactory()

        # create Test Plan via the UI by sending a POST request to the view
        previous_plans_count = TestPlan.objects.count()
        test_plan_name = 'Test plan for the new product'
        response = self.c.post(reverse('plans-new'), {
            'name': test_plan_name,
            'product': product.pk,
            'product_version': product_version.pk,
            'type': plan_type.pk,
        }, follow=True)
        self.assertEqual(HTTPStatus.OK, response.status_code)
        # verify test plan was created
        self.assertTrue(test_plan_name in str(response.content,
                                              encoding=settings.DEFAULT_CHARSET))
        self.assertEqual(previous_plans_count + 1, TestPlan.objects.count())

        # now delete the product
        admin_delete_url = "admin:%s_%s_delete" % (product._meta.app_label,
                                                   product._meta.model_name)
        location = reverse(admin_delete_url, args=[product.pk])
        response = self.c.get(location)
        self.assertEqual(HTTPStatus.OK, response.status_code)
        self.assertTrue('Are you sure you want to delete the product "%s"' % product.name
                        in str(response.content, encoding=settings.DEFAULT_CHARSET))
        self.assertTrue("Yes, I'm sure" in str(response.content,
                                               encoding=settings.DEFAULT_CHARSET))

        # confirm that we're sure we want to delete it
        response = self.c.post(location, {'post': 'yes'})
        self.assertEqual(302, response.status_code)
        self.assertTrue('/admin/%s/%s/' % (product._meta.app_label, product._meta.model_name)
                        in response['Location'])

        # verify everything has been deleted
        self.assertFalse(Product.objects.filter(pk=product.pk).exists())
        self.assertFalse(Version.objects.filter(pk=product_version.pk).exists())
        self.assertEqual(previous_plans_count, TestPlan.objects.count())
Ejemplo n.º 5
0
    def test_product_delete_with_test_plan_wo_email_settings(self):
        """
        A test to demonstrate Issue #181.

        Steps to reproduce:
        1) Create a new Product
        2) Create a new Test Plan for Product
        3) DON'T edit the Test Plan
        4) Delete the Product

        Expected results:
        0) No errors
        1) Product is deleted
        2) Test Plan is deleted
        """
        # setup
        product = ProductFactory(name="Something to delete")
        product_version = VersionFactory(value="0.1", product=product)
        plan_type = PlanTypeFactory()

        previous_plans_count = TestPlan.objects.count()
        TestPlan.objects.create(
            name="Test plan for the new product",
            author=self.user,
            product=product,
            product_version=product_version,
            type=plan_type,
        )
        # verify TP was created
        self.assertEqual(previous_plans_count + 1, TestPlan.objects.count())

        # make sure there are no email settings
        TestPlanEmailSettings.objects.all().delete()

        # now delete the product
        # pylint: disable=no-member
        admin_delete_url = (
            f"admin:{product._meta.app_label}_{product._meta.model_name}_delete"
        )
        location = reverse(admin_delete_url, args=[product.pk])
        response = self.c.get(location)
        self.assertContains(response, product.name)
        self.assertContains(response, _("Yes, I'm sure"))

        # confirm that we're sure we want to delete it
        response = self.c.post(location, {"post": "yes"})
        self.assertEqual(302, response.status_code)
        self.assertIn(
            f"/admin/{product._meta.app_label}/{product._meta.model_name}/",
            response["Location"],
        )

        # verify everything has been deleted
        self.assertFalse(Product.objects.filter(pk=product.pk).exists())
        self.assertFalse(Version.objects.filter(pk=product_version.pk).exists())
        self.assertEqual(previous_plans_count, TestPlan.objects.count())
Ejemplo n.º 6
0
    def setUpTestData(cls):
        cls.product = ProductFactory()
        cls.request = HttpRequest()

        cls.info_objects = _InfoObjects(cls.request, cls.product.pk)

        cls.category_one = CategoryFactory(product=cls.product)
        cls.category_two = CategoryFactory(product=cls.product)
        cls.category_three = CategoryFactory()

        cls.component_one = ComponentFactory(product=cls.product)
        cls.component_two = ComponentFactory(product=cls.product)
        cls.component_three = ComponentFactory()

        cls.user_one = UserFactory()
        cls.user_two = UserFactory()

        cls.version_one = VersionFactory(product=cls.product)
        cls.version_two = VersionFactory()
Ejemplo n.º 7
0
 def setUpTestData(cls):
     cls.user = UserFactory(username='******')
     cls.product_starcraft = ProductFactory(name='StarCraft')
     cls.starcraft_version_0_1 = VersionFactory(value='0.1', product=cls.product_starcraft)
     cls.starcraft_version_0_2 = VersionFactory(value='0.2', product=cls.product_starcraft)
     cls.product_streetfighter = ProductFactory(name='StreetFighter')
     cls.streetfighter_version_0_1 = VersionFactory(value='0.1', product=cls.product_streetfighter)
     cls.plans = [
         TestPlanFactory(name='StarCraft: Init',
                         product=cls.product_starcraft, product_version=cls.starcraft_version_0_1,
                         author=cls.user, owner=cls.user),
         TestPlanFactory(name='StarCraft: Start',
                         product=cls.product_starcraft, product_version=cls.starcraft_version_0_2,
                         author=cls.user, owner=cls.user),
         TestPlanFactory(name='StreetFighter',
                         product=cls.product_streetfighter,
                         product_version=cls.streetfighter_version_0_1,
                         author=cls.user, owner=cls.user),
     ]
Ejemplo n.º 8
0
    def setUpTestData(cls):
        cls.case_status_confirmed = TestCaseStatus.objects.get(
            name='CONFIRMED')
        cls.case_status_proposed = TestCaseStatus.objects.get(name='PROPOSED')

        cls.product = ProductFactory(name='Kiwi')
        cls.version = VersionFactory(value='0.1', product=cls.product)

        cls.tester = User.objects.create_user(username='******',
                                              email='*****@*****.**')
        cls.tester.set_password('password')
        cls.tester.save()

        cls.plan = TestPlanFactory(author=cls.tester,
                                   owner=cls.tester,
                                   product=cls.product,
                                   product_version=cls.version)

        cls.case = TestCaseFactory(author=cls.tester,
                                   default_tester=None,
                                   reviewer=cls.tester,
                                   case_status=cls.case_status_confirmed,
                                   plan=[cls.plan])
        cls.case_1 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_2 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_3 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])

        cls.case_4 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_5 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_6 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
Ejemplo n.º 9
0
 def setUpTestData(cls):
     cls.product = ProductFactory(name='StarCraft')
     cls.starcraft_version_0_1 = VersionFactory(value='0.1', product=cls.product)
     cls.components = [
         ComponentFactory(name='application', product=cls.product,
                          initial_owner=None, initial_qa_contact=None),
         ComponentFactory(name='database', product=cls.product,
                          initial_owner=None, initial_qa_contact=None),
         ComponentFactory(name='documentation', product=cls.product,
                          initial_owner=None, initial_qa_contact=None),
     ]
Ejemplo n.º 10
0
    def setUpTestData(cls):
        super(TestEditRun, cls).setUpTestData()

        user_should_have_perm(cls.tester, 'testruns.change_testrun')
        cls.edit_url = reverse('testruns-edit', args=[cls.test_run.pk])

        cls.new_product = ProductFactory(name='Nitrate Dev')
        cls.new_build = BuildFactory(name='FastTest', product=cls.new_product)
        cls.new_version = VersionFactory(value='dev0.1',
                                         product=cls.new_product)
        cls.intern = UserFactory(username='******', email='*****@*****.**')
Ejemplo n.º 11
0
    def setUpTestData(cls):
        super(TestPlanEnvironmentGroupTests, cls).setUpTestData()

        cls.product = ProductFactory()
        cls.product_version = VersionFactory(product=cls.product)

        cls.env_group = EnvGroupFactory()
        cls.new_env_group = EnvGroupFactory(name='Laptop hardware')

        cls.tester = UserFactory()
        cls.tester.set_password('password')
        initiate_user_with_default_setups(cls.tester)
Ejemplo n.º 12
0
 def test_create_plan_with_empty_required_field(self):
     product = ProductFactory()
     version = VersionFactory(product=product)
     plan_type = PlanTypeFactory()
     with self.assertRaisesRegex(XmlRPCFault, 'This field is required.'):
         self.rpc_client.TestPlan.create({
             'product': product.pk,
             'product_version': version.pk,
             'name': '',
             'type': plan_type.pk,
             'text': 'Testing TCMS',
             'parent': None,
         })
Ejemplo n.º 13
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.staff = UserFactory(username='******', email='*****@*****.**')

        self.product = ProductFactory(name='Nitrate')
        self.version = VersionFactory(value='0.1', product=self.product)
        self.build = self.product.build.first()
        self.plan = TestPlanFactory(author=self.api_user, product=self.product)
        self.test_run = TestRunFactory(product_version=self.version, build=self.build,
                                       default_tester=None, plan=self.plan)
        self.status = TestExecutionStatus.objects.filter(weight=0).first()
        self.case = TestCaseFactory(author=self.api_user, default_tester=None, plan=[self.plan])
Ejemplo n.º 14
0
 def test_create_plan_with_empty_required_field(self):
     product = ProductFactory()
     version = VersionFactory(product=product)
     plan_type = PlanTypeFactory()
     with self.assertRaisesRegex(XmlRPCFault, "This field is required."):
         self.rpc_client.TestPlan.create({
             "product": product.pk,
             "product_version": version.pk,
             "name": "",
             "type": plan_type.pk,
             "text": "Testing TCMS",
             "parent": None,
         })
Ejemplo n.º 15
0
    def setUpTestData(cls):
        super().setUpTestData()

        cls.case_status_confirmed = TestCaseStatus.objects.get(
            name='CONFIRMED')
        cls.case_status_proposed = TestCaseStatus.objects.get(name='PROPOSED')

        cls.product = ProductFactory(name='Kiwi')
        cls.version = VersionFactory(value='0.1', product=cls.product)

        cls.plan = TestPlanFactory(author=cls.tester,
                                   owner=cls.tester,
                                   product=cls.product,
                                   product_version=cls.version)

        cls.case = TestCaseFactory(author=cls.tester,
                                   default_tester=None,
                                   reviewer=cls.tester,
                                   case_status=cls.case_status_confirmed,
                                   plan=[cls.plan])
        cls.case_1 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_2 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_3 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])

        cls.case_4 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_5 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
        cls.case_6 = TestCaseFactory(author=cls.tester,
                                     default_tester=None,
                                     reviewer=cls.tester,
                                     case_status=cls.case_status_confirmed,
                                     plan=[cls.plan])
Ejemplo n.º 16
0
 def setUpTestData(cls):
     cls.tester = UserFactory(username='******')
     cls.product = ProductFactory(name='StarCraft')
     cls.version = VersionFactory(value='0.1', product=cls.product)
     cls.plan = TestPlanFactory(name='Test product.get_cases',
                                owner=cls.tester, author=cls.tester,
                                product=cls.product,
                                product_version=cls.version)
     cls.case_category = TestCaseCategoryFactory(product=cls.product)
     cls.cases_count = 10
     cls.cases = [TestCaseFactory(category=cls.case_category, author=cls.tester,
                                  reviewer=cls.tester, default_tester=None,
                                  plan=[cls.plan])
                  for i in range(cls.cases_count)]
Ejemplo n.º 17
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory(product=self.product)
        self.plan_type = PlanTypeFactory()
        self.params = {
            "product": self.product.pk,
            "product_version": self.version.pk,
            "name": "Testplan foobar",
            "type": self.plan_type.pk,
            "text": "Testing TCMS",
            "parent": None,
        }
Ejemplo n.º 18
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory()
        self.build = self.product.build.first()
        self.plan = TestPlanFactory(product=self.product,
                                    product_version=self.version)
        self.test_run_fields = {
            'plan': self.plan.pk,
            'build': self.build.pk,
            'summary': 'TR created',
            'manager': UserFactory().pk
        }
Ejemplo n.º 19
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory(product=self.product)
        self.plan_type = PlanTypeFactory()
        self.params = {
            'product': self.product.pk,
            'product_version': self.version.pk,
            'name': 'Testplan foobar',
            'type': self.plan_type.pk,
            'text': 'Testing TCMS',
            'parent': None,
        }
Ejemplo n.º 20
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory(product=self.product)
        self.build = BuildFactory(version=self.version)
        self.plan = TestPlanFactory(product=self.product,
                                    product_version=self.version)
        self.test_run_fields = {
            "plan": self.plan.pk,
            "build": self.build.pk,
            "summary": "TR created",
            "manager": UserFactory().pk,
        }
Ejemplo n.º 21
0
    def _fixture_setup(self):
        super(TestCaseRunCreate, self)._fixture_setup()

        self.staff = UserFactory(username='******', email='*****@*****.**')

        self.product = ProductFactory(name='Nitrate')
        self.version = VersionFactory(value='0.1', product=self.product)
        self.build = self.product.build.all()[0]
        self.plan = TestPlanFactory(author=self.api_user, owner=self.api_user, product=self.product)
        self.test_run = TestRunFactory(product_version=self.version, build=self.build,
                                       default_tester=None, plan=self.plan)
        self.case_run_status = TestCaseRunStatus.objects.get(name='IDLE')
        self.case = TestCaseFactory(author=self.api_user, default_tester=None, plan=[self.plan])

        self.case_run_pks = []
Ejemplo n.º 22
0
    def test_create_with_product_version(self):
        version2 = VersionFactory()

        test_run_fields = {
            'plan': self.plan.pk,
            'build': self.build.pk,
            'summary': 'TR with product_version',
            'manager': self.api_user.pk,
            'product_version': version2.pk,
        }

        result = self.rpc_client.exec.TestRun.create(test_run_fields)
        # the result is still using product_version from TR.plan.product_version
        # not the one we specified above
        self.assertEqual(result['product_version'], self.plan.product_version.value)
Ejemplo n.º 23
0
    def test_with_invalid_version_shows_error(self):
        edit_data = self.testplan_edit_data.copy()
        # Note: version not assigned to the current Product, that's why
        # it is invalid !
        version = VersionFactory()
        edit_data['product_version'] = version.pk

        response = self.client.post(self.testplan_edit_url,
                                    data=edit_data,
                                    follow=True)

        self.assertContains(
            response,
            _('Select a valid choice. That choice is not one of the available choices.'
              ))
Ejemplo n.º 24
0
    def _fixture_setup(self):
        super(TestFilter, self)._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory(product=self.product)
        self.tester = UserFactory()
        self.plan_type = PlanTypeFactory(name='manual smoking')
        self.plan_1 = TestPlanFactory(product_version=self.version,
                                      product=self.product,
                                      author=self.tester,
                                      type=self.plan_type)
        self.plan_2 = TestPlanFactory(product_version=self.version,
                                      product=self.product,
                                      author=self.tester,
                                      type=self.plan_type)
Ejemplo n.º 25
0
    def _fixture_setup(self):
        super(TestFilterCases, self)._fixture_setup()

        self.tester = UserFactory(username='******')
        self.product = ProductFactory(name='StarCraft')
        self.version = VersionFactory(value='0.1', product=self.product)
        self.plan = TestPlanFactory(name='Test product.get_cases',
                                    owner=self.tester, author=self.tester,
                                    product=self.product,
                                    product_version=self.version)
        self.case_category = CategoryFactory(product=self.product)
        self.cases_count = 10
        self.cases = [TestCaseFactory(category=self.case_category, author=self.tester,
                                      reviewer=self.tester, default_tester=None,
                                      plan=[self.plan])
                      for i in range(self.cases_count)]
Ejemplo n.º 26
0
    def test_create_with_product_version(self):
        version2 = VersionFactory()

        test_run_fields = {
            "plan": self.plan.pk,
            "build": self.build.pk,
            "summary": "TR with product_version",
            "manager": self.api_user.pk,
            "product_version": version2.pk,
        }

        result = self.rpc_client.TestRun.create(test_run_fields)
        # the result is still using product_version from TR.plan.product_version
        # not the one we specified above
        self.assertEqual(result["product_version"],
                         self.plan.product_version.value)
Ejemplo n.º 27
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.staff = UserFactory()

        self.version = VersionFactory()
        self.build = self.version.product.build.first()
        self.plan = TestPlanFactory(author=self.api_user,
                                    product=self.version.product)
        self.test_run = TestRunFactory(product_version=self.version,
                                       build=self.build,
                                       default_tester=None,
                                       plan=self.plan)
        self.status = TestExecutionStatus.objects.filter(weight=0).first()
        self.case = TestCaseFactory(author=self.api_user,
                                    default_tester=None,
                                    plan=[self.plan])
Ejemplo n.º 28
0
    def setUpTestData(cls):
        cls.user = UserFactory(username='******', email='*****@*****.**')
        cls.user.set_password('admin')
        cls.user.is_superuser = True
        cls.user.save()

        cls.c = Client()
        cls.c.login(  # nosec:B106:hardcoded_password_funcarg
            username='******',
            password='******')

        cls.classification = ClassificationFactory(name='Auto')
        cls.product = ProductFactory(name='Kiwi',
                                     classification=cls.classification)
        cls.product_version = VersionFactory(value='0.1', product=cls.product)
        cls.plan_type = PlanTypeFactory()

        cls.test_plan = TestPlanFactory(name='Test plan for testing exports',
                                        product_version=cls.product_version,
                                        owner=cls.user,
                                        author=cls.user,
                                        product=cls.product,
                                        type=cls.plan_type)

        # create test cases into the test plan
        cls.cases = []
        for i in range(10):
            case = TestCaseFactory(summary='test_case_number_%d' % i,
                                   author=cls.user,
                                   default_tester=None,
                                   reviewer=cls.user,
                                   plan=[cls.test_plan])
            tag = TagFactory(name='tag_for_%s' % case.summary)
            component = ComponentFactory(name='component_for_%s' %
                                         case.summary)
            case.add_tag(tag)
            case.add_component(component)

            if i % 2 == 0:
                tag = TagFactory(name='second_tag_for_%s' % case.summary)
                component = ComponentFactory(name='second_component_for_%s' %
                                             case.summary)
                case.add_tag(tag)
                case.add_component(component)

            cls.cases.append(case)
Ejemplo n.º 29
0
    def _fixture_setup(self):
        super(TestAddTag, self)._fixture_setup()

        self.product = ProductFactory()
        self.version = VersionFactory()
        self.build = self.product.build.first()
        self.plan = TestPlanFactory(author=self.api_user, product=self.product)

        self.test_runs = [
            TestRunFactory(product_version=self.version, build=self.build,
                           default_tester=None, plan=self.plan),
            TestRunFactory(product_version=self.version, build=self.build,
                           default_tester=None, plan=self.plan),
        ]

        self.tag0 = TagFactory(name='xmlrpc_test_tag_0')
        self.tag1 = TagFactory(name='xmlrpc_test_tag_1')
Ejemplo n.º 30
0
    def setUpTestData(cls):
        super().setUpTestData()
        user_should_have_perm(cls.tester, 'bugs.add_bug')

        cls.url = reverse('bugs-new')

        cls.summary = 'A shiny new bug!'
        cls.product = ProductFactory()
        cls.version = VersionFactory(product=cls.product)
        cls.build = BuildFactory(product=cls.product)
        cls.post_data = {
            'summary': cls.summary,
            'reporter': cls.tester.pk,
            'product': cls.product.pk,
            'version': cls.version.pk,
            'build': cls.version.pk,
        }