Esempio n. 1
0
    def setUpTestData(cls):
        cls.product = ProductFactory()
        cls.request = HttpRequest()

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

        cls.build_one = BuildFactory(product=cls.product)
        cls.build_two = BuildFactory(product=cls.product)
        cls.build_two.is_active = False
        cls.build_two.save()

        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.env_group_one = EnvGroupFactory()
        cls.env_group_two = EnvGroupFactory()

        cls.env_property_one = EnvPropertyFactory()
        cls.env_property_two = EnvPropertyFactory()
        EnvGroupPropertyMapFactory(group=cls.env_group_one, property=cls.env_property_one)

        cls.env_value_one = EnvValueFactory(property=cls.env_property_one)
        cls.env_value_two = EnvValueFactory()

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

        cls.version_one = VersionFactory(product=cls.product)
        cls.version_two = VersionFactory()
Esempio n. 2
0
 def _fixture_setup(self):
     super()._fixture_setup()
     self.test_case = TestCaseFactory()
     self.good_component = ComponentFactory(product=self.test_case.category.product)
     self.bad_component = ComponentFactory(product=self.test_case.category.product)
     self.test_case.add_component(self.good_component)
     self.test_case.add_component(self.bad_component)
Esempio n. 3
0
    def setUpTestData(cls):
        super(TestOperateComponentView, cls).setUpTestData()

        cls.comp_application = ComponentFactory(name='Application',
                                                product=cls.product,
                                                initial_owner=cls.tester,
                                                initial_qa_contact=cls.tester)
        cls.comp_database = ComponentFactory(name='Database',
                                             product=cls.product,
                                             initial_owner=cls.tester,
                                             initial_qa_contact=cls.tester)
        cls.comp_cli = ComponentFactory(name='CLI',
                                        product=cls.product,
                                        initial_owner=cls.tester,
                                        initial_qa_contact=cls.tester)
        cls.comp_api = ComponentFactory(name='API',
                                        product=cls.product,
                                        initial_owner=cls.tester,
                                        initial_qa_contact=cls.tester)

        TestCaseComponentFactory(case=cls.case_1, component=cls.comp_cli)
        TestCaseComponentFactory(case=cls.case_1, component=cls.comp_api)

        user_should_have_perm(cls.tester, 'testcases.add_testcasecomponent')

        cls.cases_component_url = reverse('testcases-component')
Esempio n. 4
0
    def setUpTestData(cls):
        cls.user = UserFactory()
        cls.http_req = make_http_request(
            user=cls.user, user_perm='testplans.add_testplancomponent')

        cls.product = ProductFactory()
        cls.plans = [
            TestPlanFactory(author=cls.user,
                            owner=cls.user,
                            product=cls.product),
            TestPlanFactory(author=cls.user,
                            owner=cls.user,
                            product=cls.product),
        ]
        cls.component1 = ComponentFactory(
            name='xmlrpc test component 1',
            description='xmlrpc test description',
            product=cls.product,
            initial_owner=None,
            initial_qa_contact=None)
        cls.component2 = ComponentFactory(
            name='xmlrpc test component 2',
            description='xmlrpc test description',
            product=cls.product,
            initial_owner=None,
            initial_qa_contact=None)
Esempio n. 5
0
 def setUpTestData(cls):
     cls.product_nitrate = ProductFactory(name='nitrate')
     cls.product_xmlrpc = ProductFactory(name='xmlrpc')
     cls.components = [
         ComponentFactory(name='application', product=cls.product_nitrate),
         ComponentFactory(name='database', product=cls.product_nitrate),
         ComponentFactory(name='documentation', product=cls.product_xmlrpc),
     ]
Esempio n. 6
0
    def _fixture_setup(self):
        super(TestCheckComponent, self)._fixture_setup()

        self.product_nitrate = ProductFactory(name='nitrate')
        self.product_xmlrpc = ProductFactory(name='xmlrpc')
        self.components = [
            ComponentFactory(name='application', product=self.product_nitrate),
            ComponentFactory(name='database', product=self.product_nitrate),
            ComponentFactory(name='documentation',
                             product=self.product_xmlrpc),
        ]
Esempio n. 7
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),
     ]
Esempio n. 8
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()
Esempio n. 9
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.summary = "Tested at " + timezone.now(
        ).isoformat()
        self.execution_1.case.text = "Given-When-Then"
        self.execution_1.case.save()  # will generate history object
        self.execution_1.run.summary = (
            "Automated TR for BitBucket integration on " +
            timezone.now().isoformat())
        self.execution_1.run.save()

        self.component = ComponentFactory(
            name="BitBucket integration",
            product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name="BitBucket for kiwitcms/test-bitbucket-integration",
            tracker_type="tcms.issuetracker.bitbucket.BitBucket",
            base_url="https://bitbucket.org/kiwitcms/integration",
            api_username=os.getenv("BITBUCKET_INTEGRATION_API_USERNAME"),
            api_password=os.getenv("BITBUCKET_INTEGRATION_API_PASSWORD"),
        )
        self.integration = BitBucket(bug_system, None)
Esempio n. 10
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.summary = "Tested at " + timezone.now(
        ).isoformat()
        self.execution_1.case.text = "Given-When-Then"
        self.execution_1.case.save()  # will generate history object
        self.execution_1.run.summary = (
            "Automated TR for JIRA integration on " +
            timezone.now().isoformat())
        self.execution_1.run.save()

        # this is the name of the JIRA Project
        self.execution_1.run.plan.product.name = "Integration with JIRA"
        self.execution_1.run.plan.product.save()

        self.component = ComponentFactory(
            name="JIRA integration", product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name="JIRA at kiwitcms.atlassian.net",
            tracker_type="tcms.issuetracker.types.JIRA",
            base_url="https://kiwitcms.atlassian.net",
            api_username=os.getenv("JIRA_BUGTRACKER_INTEGRATION_API_USERNAME"),
            api_password=os.getenv("JIRA_BUGTRACKER_INTEGRATION_API_TOKEN"),
        )
        self.integration = JIRA(bug_system, None)
Esempio n. 11
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.summary = "Tested at " + timezone.now(
        ).isoformat()
        self.execution_1.case.text = "Given-When-Then"
        self.execution_1.case.save()  # will generate history object
        self.execution_1.run.summary = (
            "Automated TR for Azure integration on " +
            timezone.now().isoformat())
        self.execution_1.run.save()

        self.component = ComponentFactory(
            name="AzureBoards integration",
            product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name="Azure for kiwitcms/test-azure-integration",
            tracker_type="tcms.issuetracker.azure_boards.AzureBoards",
            base_url="https://dev.azure.com/kiwitcms/boards-integration",
            api_password=os.getenv("AZURE_BOARDS_INTEGRATION_API_TOKEN"),
        )
        self.integration = AzureBoards(bug_system, None)
Esempio n. 12
0
    def test_report_issue_from_test_execution_falls_back_to_query_params(self):
        """
            In case 1-click bug-report fails Bugzilla integration will open
            a URL with some of the fields pre-defined so the tester will have
            an easier time filling in the rest.
        """
        # note: automatically creates a version called 'unspecified'
        product = ProductFactory(name='Kiwi TCMS')
        version, _ = Version.objects.get_or_create(product=product, value='unspecified')
        component = ComponentFactory(name='Bugzilla integration', product=product)

        test_plan = TestPlanFactory(product=product, product_version=version)
        test_case = TestCaseFactory(component=[component], plan=[test_plan])
        test_case.save()  # will generate history object

        test_run = TestRunFactory(plan=test_plan, product_version=version)
        execution2 = TestExecutionFactory(run=test_run, case=test_case, build=test_run.build)

        # simulate user clicking the 'Report bug' button in TE widget, TR page
        result = self.rpc_client.Bug.report(execution2.pk, self.integration.bug_system.pk)
        self.assertEqual(result['rc'], 0)
        self.assertIn('http://bugtracker.kiwitcms.org/bugzilla/enter_bug.cgi', result['response'])

        # assert that the result looks like valid URL parameters
        self.assertIn('product=Kiwi+TCMS', result['response'])
        self.assertIn('component=Bugzilla+integration', result['response'])
        self.assertIn('version=unspecified', result['response'])
        expected_description = urlencode({
            'short_desc': "Test case failure: %s" % execution2.case.summary,
        })
        self.assertIn(expected_description, result['response'])
Esempio n. 13
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.summary = "Tested at " + timezone.now(
        ).isoformat()
        self.execution_1.case.text = "Given-When-Then"
        self.execution_1.case.save()  # will generate history object
        self.execution_1.run.summary = (
            "Automated TR for GitHub integration on " +
            timezone.now().isoformat())
        self.execution_1.run.save()

        self.component = ComponentFactory(
            name="GitHub integration",
            product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name="GitHub for kiwitcms/test-github-integration",
            tracker_type="tcms.issuetracker.types.GitHub",
            base_url="https://github.com/kiwitcms/test-github-integration",
            api_password=os.getenv("GH_BUGTRACKER_INTEGRATION_TEST_API_TOKEN"),
        )
        self.integration = GitHub(bug_system, None)
Esempio n. 14
0
    def setUpTestData(cls):
        super(TestCaseRemoveComponent, cls).setUpTestData()

        cls.component_1 = ComponentFactory(name='Application',
                                           product=cls.product,
                                           initial_owner=cls.tester,
                                           initial_qa_contact=cls.tester)
        cls.component_2 = ComponentFactory(name='Database',
                                           product=cls.product,
                                           initial_owner=cls.tester,
                                           initial_qa_contact=cls.tester)

        cls.cc_rel_1 = TestCaseComponentFactory(case=cls.case,
                                                component=cls.component_1)
        cls.cc_rel_2 = TestCaseComponentFactory(case=cls.case,
                                                component=cls.component_2)
Esempio n. 15
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)
Esempio n. 16
0
    def _fixture_setup(self):
        super(TestUpdateComponent, self)._fixture_setup()

        self.product = ProductFactory(name='StarCraft')
        self.component = ComponentFactory(name="application",
                                          product=self.product,
                                          initial_owner=None,
                                          initial_qa_contact=None)
Esempio n. 17
0
    def test_new_bug_assignee_inferred_from_components(self):
        comp = ComponentFactory(initial_owner=UserFactory(), product=self.product)

        self.client.post(self.url, self.post_data, follow=True)

        bug_created = Bug.objects.last()
        self.assertEqual(bug_created.summary, self.summary)
        self.assertEqual(bug_created.assignee, comp.initial_owner)
Esempio n. 18
0
    def setUpTestData(cls):
        cls.admin = UserFactory()
        cls.staff = UserFactory()
        cls.admin_request = make_http_request(user=cls.admin,
                                              user_perm='management.change_component')
        cls.staff_request = make_http_request(user=cls.staff)

        cls.product = ProductFactory(name='StarCraft')
        cls.component = ComponentFactory(name="application", product=cls.product,
                                         initial_owner=None, initial_qa_contact=None)
Esempio n. 19
0
    def test_report_issue_from_test_execution_1click_works(self):
        """
        Automatic 1-click bug report to Bugzilla usually works
        when Product, Version and Component exist in Bugzilla!
        """
        # note: automatically creates a version called 'unspecified'
        product = ProductFactory(name="TestProduct")
        version, _ = Version.objects.get_or_create(product=product,
                                                   value="unspecified")
        component = ComponentFactory(name="TestComponent", product=product)

        test_plan = TestPlanFactory(product=product, product_version=version)
        test_case = TestCaseFactory(component=[component], plan=[test_plan])
        test_case.save()  # will generate history object

        test_run = TestRunFactory(plan=test_plan, product_version=version)
        execution2 = TestExecutionFactory(run=test_run,
                                          case=test_case,
                                          build=test_run.build)

        # simulate user clicking the 'Report bug' button in TE widget, TR page
        result = self.rpc_client.Bug.report(execution2.pk,
                                            self.integration.bug_system.pk)
        self.assertEqual(result["rc"], 0)
        self.assertIn(
            "http://bugtracker.kiwitcms.org/bugzilla/show_bug.cgi?id=",
            result["response"],
        )

        new_bug_id = self.integration.bug_id_from_url(result["response"])
        bug = self.integration.rpc.getbug(new_bug_id)

        self.assertEqual("TestProduct", bug.product)
        self.assertEqual("TestComponent", bug.component)
        self.assertEqual("unspecified", bug.version)
        self.assertEqual("All", bug.op_sys)
        self.assertEqual("All", bug.rep_platform)

        last_comment = bug.getcomments()[-1]
        for expected_string in [
                "Filed from execution %s" % execution2.get_full_url(),
                product.name,
                component.name,
                test_case.text,
        ]:
            self.assertIn(expected_string, last_comment["text"])

        # verify that LR has been added to TE
        self.assertTrue(
            LinkReference.objects.filter(
                execution=execution2,
                url=result["response"],
                is_defect=True,
            ).exists())
Esempio n. 20
0
    def _fixture_setup(self):
        super(TestAddComponent, self)._fixture_setup()

        self.product = ProductFactory()
        self.plans = [
            TestPlanFactory(author=self.api_user,
                            owner=self.api_user,
                            product=self.product),
            TestPlanFactory(author=self.api_user,
                            owner=self.api_user,
                            product=self.product),
        ]
        self.component1 = ComponentFactory(
            name='xmlrpc test component 1',
            description='xmlrpc test description',
            product=self.product,
            initial_owner=None,
            initial_qa_contact=None)
        self.component2 = ComponentFactory(
            name='xmlrpc test component 2',
            description='xmlrpc test description',
            product=self.product,
            initial_owner=None,
            initial_qa_contact=None)
Esempio n. 21
0
    def setUpTestData(cls):
        cls.product = ProductFactory()
        cls.request = HttpRequest()

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

        cls.build_one = BuildFactory(product=cls.product)
        cls.build_two = BuildFactory(product=cls.product)
        cls.build_two.is_active = False
        cls.build_two.save()

        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()
Esempio n. 22
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.text = "Given-When-Then"
        self.execution_1.case.save()  # will generate history object

        self.component = ComponentFactory(
            name='Gitlab integration',
            product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name='GitLab-EE for root/kiwitcms',
            tracker_type='Gitlab',
            base_url='http://bugtracker.kiwitcms.org/root/kiwitcms/',
            api_url='http://bugtracker.kiwitcms.org',
            api_password='******',
        )
        self.integration = Gitlab(bug_system)
Esempio n. 23
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.text = "Given-When-Then"
        self.execution_1.case.save()  # will generate history object

        self.component = ComponentFactory(
            name="Gitlab integration",
            product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name="GitLab-EE for root/kiwitcms",
            tracker_type="tcms.issuetracker.types.Gitlab",
            base_url="https://gitlab.com/kiwitcms/integration-testing/",
            api_url="https://gitlab.com",
            api_password=os.getenv("GITLAB_INTEGRATION_API_TOKEN"),
        )
        self.integration = Gitlab(bug_system, None)
Esempio n. 24
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.save()  # will generate history object

        # this is the name of the Redmine Project
        self.execution_1.run.plan.product.name = 'Integration with Kiwi TCMS'
        self.execution_1.run.plan.product.save()

        self.component = ComponentFactory(name='Redmine integration',
                                          product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name='Redmine at kiwitcms.atlassian.net',
            tracker_type='Redmine',
            base_url='http://bugtracker.kiwitcms.org:3000',
            api_username='******',
            api_password='******',
        )
        self.integration = Redmine(bug_system)
Esempio n. 25
0
    def _fixture_setup(self):
        super()._fixture_setup()

        self.existing_bug = BugFactory()

        self.execution_1 = TestExecutionFactory()
        self.execution_1.case.text = "Given-When-Then"
        self.execution_1.case.save()  # will generate history object

        self.component = ComponentFactory(
            name='KiwiTCMS integration',
            product=self.execution_1.run.plan.product)
        self.execution_1.case.add_component(self.component)

        bug_system = BugSystem.objects.create(  # nosec:B106:hardcoded_password_funcarg
            name='KiwiTCMS internal bug tracker',
            tracker_type='tcms.issuetracker.types.KiwiTCMS',
            base_url="https://%s" %
            Site.objects.get(id=settings.SITE_ID).domain,
            # note: ^^^ this is https just because .get_full_url() default to that !
        )
        self.integration = KiwiTCMS(bug_system, None)
Esempio n. 26
0
 def setUpTestData(cls):
     super(TestAddComponent, cls).setUpTestData()
     cls.component_db = ComponentFactory(name='db', product=cls.product)
     cls.component_doc = ComponentFactory(name='doc', product=cls.product)
     cls.component_cli = ComponentFactory(name='cli', product=cls.product)
Esempio n. 27
0
    def _fixture_setup(self):
        super(TestGetComponent, self)._fixture_setup()

        self.product = ProductFactory(name='StarCraft')
        self.component = ComponentFactory(name='application',
                                          product=self.product)
Esempio n. 28
0
 def setUpTestData(cls):
     cls.product = ProductFactory(name='StarCraft')
     cls.component = ComponentFactory(name='application',
                                      product=cls.product)
Esempio n. 29
0
 def setUpTestData(cls):
     cls.product = ProductFactory(name='StarCraft')
     cls.component = ComponentFactory(name='application',
                                      product=cls.product,
                                      initial_owner=None,
                                      initial_qa_contact=None)
Esempio n. 30
0
 def setUpTestData(cls):
     cls.testcase = TestCaseFactory(component=[
         ComponentFactory(),
         ComponentFactory(),
         ComponentFactory()
     ])