Exemplo n.º 1
0
    def test_login_worker_with_bad_password(self):
        post_data = {}
        post_data['username'] = '******'
        post_data['password'] = '******'

        user1 = User.objects.create_user(
            username='******',
            email=None,
            password='******')
        user1.save()

        worker = WorkerEntry.objects.create(name='worker-1',
                                            uuid=post_data['username'],
                                            description='One Worker :)',
                                            user=user1)

        resp = self.client.post('/main/bluesteelworker/login/',
                                data=json.dumps(post_data),
                                content_type='text/plain')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(401, resp_obj['status'])
        self.assertEqual('Access denied!', resp_obj['message'])
        self.assertEqual(False, self.client.session.has_key('_auth_user_id'))
    def test_command_output(self):
        StackedMailEntry.objects.create(receiver='*****@*****.**', sender='*****@*****.**', title='Title1', content='Body1', is_sent=True)
        StackedMailEntry.objects.create(receiver='*****@*****.**', sender='*****@*****.**', title='Title2', content='Body2', is_sent=False)
        StackedMailEntry.objects.create(receiver='*****@*****.**', sender='*****@*****.**', title='Title3', content='Body3', is_sent=False)
        StackedMailEntry.objects.create(receiver='*****@*****.**', sender='*****@*****.**', title='Title4', content='Body4', is_sent=False)

        resp = self.client.post(
            '/main/notification/send/all/',
            data = json.dumps({}),
            content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])

        mail.outbox.sort(key=lambda x: x.to[0])

        self.assertEqual('*****@*****.**', mail.outbox[0].to[0])
        self.assertEqual('*****@*****.**', mail.outbox[0].from_email)

        self.assertEqual('*****@*****.**', mail.outbox[1].to[0])
        self.assertEqual('*****@*****.**', mail.outbox[1].from_email)

        self.assertEqual('*****@*****.**', mail.outbox[2].to[0])
        self.assertEqual('*****@*****.**', mail.outbox[2].from_email)

        emails = StackedMailEntry.objects.all()

        for email in emails:
            self.assertEqual(True, email.is_sent)
    def test_fluctuation_waiver_modified_successfully_to_false(self):
        waiver = BenchmarkFluctuationWaiverEntry.objects.create(
            git_user=self.git_user1, notification_allowed=True)

        self.assertEqual(1,
                         BenchmarkFluctuationWaiverEntry.objects.all().count())
        self.assertEqual(
            1,
            BenchmarkFluctuationWaiverEntry.objects.filter(
                git_user__id=self.git_user1.id,
                notification_allowed=True).count())

        resp = self.client.post('/main/notification/waiver/{0}/deny/'.format(
            waiver.id),
                                data=json.dumps({}),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(1,
                         BenchmarkFluctuationWaiverEntry.objects.all().count())
        self.assertEqual(
            1,
            BenchmarkFluctuationWaiverEntry.objects.filter(
                git_user__id=self.git_user1.id,
                notification_allowed=False).count())
Exemplo n.º 4
0
    def test_add_bluesteel_project_to_layout(self):
        self.assertEqual(1, BluesteelLayoutEntry.objects.all().count())
        self.assertEqual(0, BluesteelProjectEntry.objects.all().count())

        resp = self.client.post('/main/layout/{0}/add/project/'.format(
            self.layout_1.id),
                                data='',
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(1, BluesteelLayoutEntry.objects.all().count())
        self.assertEqual(1,
                         BluesteelProjectEntry.objects.filter(order=0).count())

        resp = self.client.post('/main/layout/{0}/add/project/'.format(
            self.layout_1.id),
                                data='',
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(1, BluesteelLayoutEntry.objects.all().count())
        self.assertEqual(1,
                         BluesteelProjectEntry.objects.filter(order=0).count())
        self.assertEqual(1,
                         BluesteelProjectEntry.objects.filter(order=1).count())
Exemplo n.º 5
0
    def test_delete_bluesteel_project_to_layout(self):
        layout_entry = BluesteelLayoutController.create_new_default_layout()

        self.assertEqual(
            1,
            BluesteelLayoutEntry.objects.filter(id=layout_entry.id).count())
        self.assertEqual(1, BluesteelProjectEntry.objects.all().count())

        self.assertEqual(15, CommandEntry.objects.all().count())
        self.assertTrue(self.check_default_fetch_commands())

        resp = self.client.post('/main/layout/{0}/delete/'.format(
            layout_entry.id),
                                data='',
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(
            0,
            BluesteelLayoutEntry.objects.filter(id=layout_entry.id).count())
        self.assertEqual(0, BluesteelProjectEntry.objects.all().count())
        self.assertEqual(0, CommandEntry.objects.all().count())
    def test_get_all_branches_and_merge_target_info(self):
        diff_entry = GitDiffEntry.objects.create(
            project=self.git_project1,
            commit_son=self.git_commit3,
            commit_parent=self.git_commit1,
            content='diff-3-1')

        GitBranchMergeTargetEntry.objects.create(
            project=self.git_project1,
            current_branch=self.git_branch3,
            target_branch=self.git_branch1,
            fork_point=self.git_commit1,
            diff=diff_entry)

        resp = self.client.get('/main/branch/all/project/{0}/'.format(
            self.git_project1.id))

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(2, len(resp_obj['data']))
        self.assertEqual('branch-1', resp_obj['data'][0]['name'])
        self.assertEqual('0000100001000010000100001000010000100001',
                         resp_obj['data'][0]['commit_hash'])
        self.assertFalse('target_branch_name' in resp_obj['data'][0])

        self.assertEqual('branch-3', resp_obj['data'][1]['name'])
        self.assertEqual('0000300003000030000300003000030000300003',
                         resp_obj['data'][1]['commit_hash'])
        self.assertEqual('branch-1', resp_obj['data'][1]['target_branch_name'])
    def test_merge_target_not_changed_because_its_the_same(self):
        self.git_merge_target1.target_branch = self.git_branch3
        self.git_merge_target1.save()

        self.assertEqual('branch-3', self.git_merge_target1.target_branch.name)
        self.assertEqual(False, self.git_merge_target1.invalidated)

        obj = {}
        obj['current_branch_name'] = 'branch-1'
        obj['target_branch_name'] = 'branch-3'

        resp = self.client.post(
            '/main/branch/merge/target/project/{0}/'.format(
                self.git_project1.id),
            data=json.dumps(obj),
            content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual('Target branch not changed', resp_obj['message'])
        self.assertEqual(
            False,
            GitBranchMergeTargetEntry.objects.get(
                project=self.git_project1,
                target_branch=self.git_branch3).invalidated)
        self.assertEqual(
            'branch-3',
            GitBranchMergeTargetEntry.objects.get(
                project=self.git_project1,
                target_branch=self.git_branch3).target_branch.name)
    def test_get_layout_1(self):
        git_project = GitProjectEntry.objects.create(
            url='http://www.test.com',
            name='git-project-28',
        )

        command_group = CommandGroupEntry.objects.create()
        command_set = CommandSetEntry.objects.create(group=command_group)

        command = CommandEntry.objects.create(command_set=command_set,
                                              command='command-1 arg-2, arg-3',
                                              order=0)

        project_1 = BluesteelProjectEntry.objects.create(
            name='project-1',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project,
        )

        resp = self.client.get('/main/layout/1/')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(1, resp_obj['data']['id'])
        self.assertEqual('layout-1', resp_obj['data']['name'])
        self.assertEqual('archive-1', resp_obj['data']['uuid'])
        self.assertEqual('http://testserver/main/feed/commit/project/1/',
                         resp_obj['data']['projects'][0]['feed_commits_url'])
        self.assertEqual('http://testserver/main/feed/report/project/1/',
                         resp_obj['data']['projects'][0]['feed_reports_url'])
    def test_incorrect_branch(self):
        commit_time = str(timezone.now().isoformat())
        commit1 = FeederTestHelper.create_commit(1, [], 'user1',
                                                 '*****@*****.**', commit_time,
                                                 commit_time)

        branch1 = FeederTestHelper.create_branch('master', 2, 'master', 2, 1,
                                                 [2, 1],
                                                 'merge-target-content')

        feed_data = {}
        feed_data['commits'] = []
        feed_data['commits'].append(commit1)
        feed_data['branches'] = []
        feed_data['branches'].append(branch1)

        post_data = FeederTestHelper.create_feed_data(feed_data)

        resp = self.client.post('/main/feed/commit/project/{0}/'.format(
            self.git_project1.id),
                                data=json.dumps(post_data),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(400, resp_obj['status'])
        self.assertEqual('Branches not correct', resp_obj['message'])
        self.assertEqual(0, GitCommitEntry.objects.all().count())
        self.assertEqual(0, GitBranchEntry.objects.all().count())
Exemplo n.º 10
0
    def test_save_worker(self):
        worker_new = WorkerEntry.objects.create(
            name='worker-new',
            uuid='8a88432d-33db-4d24-a0a7-2f863e111111',
            description='description-1',
            git_feeder=False,
            user=self.user1)

        self.assertEqual('description-1', worker_new.description)
        self.assertFalse(worker_new.git_feeder)

        post_data = {}
        post_data['description'] = 'description-2'
        post_data['git_feeder'] = True
        post_data['max_feed_reports'] = 30

        resp = self.client.post('/main/bluesteelworker/{0}/save/'.format(
            worker_new.id),
                                data=json.dumps(post_data),
                                content_type='text/plain')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        worker = WorkerEntry.objects.filter(id=worker_new.id).first()

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual('description-2', worker.description)
        self.assertEqual(True, worker.git_feeder)
        self.assertEqual(30, worker.max_feed_reports)
Exemplo n.º 11
0
    def test_udpate_branch_5_order_value_to_be_the_first(self):
        resp = self.client.post(
            '/main/branch/{0}/project/{1}/update/order/0/'.format(
                self.git_branch5.id, self.git_project1.id),
            data='{}',
            content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(
            1,
            GitBranchEntry.objects.filter(
                id=self.git_branch1.id).first().order)
        self.assertEqual(
            2,
            GitBranchEntry.objects.filter(
                id=self.git_branch2.id).first().order)
        self.assertEqual(
            3,
            GitBranchEntry.objects.filter(
                id=self.git_branch3.id).first().order)
        self.assertEqual(
            4,
            GitBranchEntry.objects.filter(
                id=self.git_branch4.id).first().order)
        self.assertEqual(
            0,
            GitBranchEntry.objects.filter(
                id=self.git_branch5.id).first().order)
Exemplo n.º 12
0
    def test_get_worker_files_hash_does_not_exists(self):
        resp = self.client.get('/main/bluesteelworker/hash/')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(400, resp_obj['status'])
        self.assertEqual('Worker files hash not found', resp_obj['message'])
Exemplo n.º 13
0
    def test_get_worker_info_not_found(self):
        resp = self.client.get(
            '/main/bluesteelworker/8a88432d-33db-4d24-a0a7-20000000000a/')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(400, resp_obj['status'])
        self.assertEqual('Worker not found', resp_obj['message'])
    def test_fluctuation_waiver_modified_not_successful(self):
        resp = self.client.post('/main/notification/waiver/28/deny/',
                                data=json.dumps({}),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(404, resp_obj['status'])
Exemplo n.º 15
0
    def test_get_worker_files_hash_exists(self):
        WorkerFilesHashEntry.objects.create(files_hash='aaaa')

        resp = self.client.get('/main/bluesteelworker/hash/')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual('aaaa', resp_obj['data']['worker_files_hash'])
    def test_project_not_found(self):
        resp = self.client.post('/main/branch/merge/target/project/128/',
                                data='{}',
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(404, resp_obj['status'])
        self.assertEqual('project not found', resp_obj['message'])
    def test_get_layout_project_ids_and_names_and_selected(self):
        git_project = GitProjectEntry.objects.create(
            url='http://www.test.com',
            name='git-project-28',
        )

        command_group = CommandGroupEntry.objects.create()
        command_set = CommandSetEntry.objects.create(group=command_group)

        command = CommandEntry.objects.create(command_set=command_set,
                                              command='command-1 arg-2, arg-3',
                                              order=0)

        project_1 = BluesteelProjectEntry.objects.create(
            name='project-1',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project,
        )

        project_2 = BluesteelProjectEntry.objects.create(
            name='project-2',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project,
        )

        project_3 = BluesteelProjectEntry.objects.create(
            name='project-3',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project,
        )

        self.layout_1.project_index_path = 2
        self.layout_1.save()

        resp = self.client.get('/main/layout/1/projects/info/')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(3, len(resp_obj['data']['projects']))

        self.assertEqual('project-1', resp_obj['data']['projects'][0]['name'])
        self.assertEqual(project_1.id, resp_obj['data']['projects'][0]['id'])
        self.assertEqual(False, resp_obj['data']['projects'][0]['selected'])

        self.assertEqual('project-2', resp_obj['data']['projects'][1]['name'])
        self.assertEqual(project_2.id, resp_obj['data']['projects'][1]['id'])
        self.assertEqual(False, resp_obj['data']['projects'][1]['selected'])

        self.assertEqual('project-3', resp_obj['data']['projects'][2]['name'])
        self.assertEqual(project_3.id, resp_obj['data']['projects'][2]['id'])
        self.assertEqual(True, resp_obj['data']['projects'][2]['selected'])
Exemplo n.º 18
0
    def test_get_definitions_list_associated_with_a_bluesteel_project(self):
        command_group = CommandGroupEntry.objects.create()

        git_project = GitProjectEntry.objects.create(url='',
                                                     name='git-project')
        bluesteel_proj = BluesteelProjectEntry.objects.create(
            name='project-1',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project)

        benchmark_def1 = BenchmarkDefinitionEntry.objects.create(
            name='def-1',
            layout=self.layout_1,
            project=bluesteel_proj,
            command_set=CommandSetEntry.objects.create(),
            active=True)
        benchmark_def2 = BenchmarkDefinitionEntry.objects.create(
            name='def-2',
            layout=self.layout_1,
            project=bluesteel_proj,
            command_set=CommandSetEntry.objects.create(),
            active=True)
        benchmark_def3 = BenchmarkDefinitionEntry.objects.create(
            name='def-3',
            layout=self.layout_1,
            project=bluesteel_proj,
            command_set=CommandSetEntry.objects.create(),
            active=True)
        benchmark_def4 = BenchmarkDefinitionEntry.objects.create(
            name='def-4',
            layout=self.layout_1,
            project=bluesteel_proj,
            command_set=CommandSetEntry.objects.create(),
            active=False)

        resp = self.client.get('/main/project/{0}/definition/list/'.format(
            bluesteel_proj.id))

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(3, len(resp_obj['data']['definitions']))
        self.assertEqual(benchmark_def1.id,
                         resp_obj['data']['definitions'][0]['id'])
        self.assertEqual(benchmark_def2.id,
                         resp_obj['data']['definitions'][1]['id'])
        self.assertEqual(benchmark_def3.id,
                         resp_obj['data']['definitions'][2]['id'])
        self.assertEqual('def-1', resp_obj['data']['definitions'][0]['name'])
        self.assertEqual('def-2', resp_obj['data']['definitions'][1]['name'])
        self.assertEqual('def-3', resp_obj['data']['definitions'][2]['name'])
Exemplo n.º 19
0
    def test_acqiere_execution_is_none_because_no_definition(self):
        resp = self.client.post('/main/execution/acquire/')

        resp = self.client.post('/main/execution/acquire/',
                                data=json.dumps({}),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(404, resp_obj['status'])
        self.assertEqual('Next Execution not found', resp_obj['message'])
    def test_json_data_is_incorrect(self):
        resp = self.client.post(
            '/main/branch/merge/target/project/{0}/'.format(
                self.git_project1.id),
            data='/',
            content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(406, resp_obj['status'])
        self.assertEqual('Json parser failed.', resp_obj['message'])
Exemplo n.º 21
0
    def test_create_benchmark_definition(self):
        layout = BluesteelLayoutController.create_new_default_layout()

        blueProject = BluesteelProjectEntry.objects.all().first().git_project
        commit1 = GitCommitEntry.objects.create(
            project=blueProject,
            commit_hash='0000500005000050000500005000050000500005',
            author=self.git_user1,
            author_date=timezone.now(),
            committer=self.git_user1,
            committer_date=timezone.now())
        commit2 = GitCommitEntry.objects.create(
            project=blueProject,
            commit_hash='0000600006000060000600006000060000600006',
            author=self.git_user1,
            author_date=timezone.now(),
            committer=self.git_user1,
            committer_date=timezone.now())
        commit3 = GitCommitEntry.objects.create(
            project=blueProject,
            commit_hash='0000700007000070000700007000070000700007',
            author=self.git_user1,
            author_date=timezone.now(),
            committer=self.git_user1,
            committer_date=timezone.now())

        self.assertEqual(0, BenchmarkDefinitionEntry.objects.all().count())
        self.assertEqual(0, BenchmarkExecutionEntry.objects.all().count())

        resp = self.client.post('/main/definitions/create/',
                                data='',
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])

        definition = BenchmarkDefinitionEntry.objects.all().first()

        self.assertEqual(1, BenchmarkDefinitionEntry.objects.all().count())
        self.assertEqual(0, BenchmarkExecutionEntry.objects.all().count())
        self.assertEqual(
            2,
            BenchmarkDefinitionWorkerPassEntry.objects.all().count())
        self.assertEqual(
            1,
            BenchmarkDefinitionWorkerPassEntry.objects.filter(
                definition=definition, worker=self.worker1).count())
        self.assertEqual(
            1,
            BenchmarkDefinitionWorkerPassEntry.objects.filter(
                definition=definition, worker=self.worker2).count())
Exemplo n.º 22
0
    def test_get_project_list_from_layout(self):
        command_group = CommandGroupEntry.objects.create()

        git_project1 = GitProjectEntry.objects.create(url='',
                                                      name='git-project-1')
        git_project2 = GitProjectEntry.objects.create(url='',
                                                      name='git-project-2')
        git_project3 = GitProjectEntry.objects.create(url='',
                                                      name='git-project-3')

        bluesteel_proj1 = BluesteelProjectEntry.objects.create(
            name='project-1',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project1)
        bluesteel_proj2 = BluesteelProjectEntry.objects.create(
            name='project-2',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project2)
        bluesteel_proj3 = BluesteelProjectEntry.objects.create(
            name='project-3',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project3)

        resp = self.client.get('/main/layout/{0}/projects/list/'.format(
            self.layout_1.id))

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(3, len(resp_obj['data']['projects']))
        self.assertEqual(bluesteel_proj1.id,
                         resp_obj['data']['projects'][0]['id'])
        self.assertEqual(bluesteel_proj2.id,
                         resp_obj['data']['projects'][1]['id'])
        self.assertEqual(bluesteel_proj3.id,
                         resp_obj['data']['projects'][2]['id'])
        self.assertEqual('project-1', resp_obj['data']['projects'][0]['name'])
        self.assertEqual('project-2', resp_obj['data']['projects'][1]['name'])
        self.assertEqual('project-3', resp_obj['data']['projects'][2]['name'])
        self.assertEqual(
            '/main/project/1/branch/list/',
            resp_obj['data']['projects'][0]['url']['project_branch_list'])
        self.assertEqual(
            '/main/project/2/branch/list/',
            resp_obj['data']['projects'][1]['url']['project_branch_list'])
        self.assertEqual(
            '/main/project/3/branch/list/',
            resp_obj['data']['projects'][2]['url']['project_branch_list'])
    def test_report_ok(self):
        reports = []

        report = {}
        report['commands'] = []

        command = {}
        command['command'] = 'command1 arg1 arg2'
        command['result'] = {}
        command['result']['error'] = 'error-text-1'
        command['result']['out'] = 'out-text-1'
        command['result']['status'] = 0
        command['result']['start_time'] = datetime.datetime.utcnow().isoformat(
        )
        command['result']['finish_time'] = datetime.datetime.utcnow(
        ).isoformat()

        report['commands'].append(command)
        reports.append(report)

        obj = {}
        obj['reports'] = reports

        resp = self.client.post('/main/feed/report/project/{0}/'.format(
            self.git_project1.id),
                                data=json.dumps(obj),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual('Reports added correctly', resp_obj['message'])

        reports_entry = CommandGroupEntry.objects.all()
        self.assertEqual(1, len(reports_entry))

        sets_entry = CommandSetEntry.objects.all()
        self.assertEqual(1, len(sets_entry))

        self.assertEqual(reports_entry[0], sets_entry[0].group)

        comm_entry = CommandEntry.objects.all().first()
        self.assertEqual(u'command1 arg1 arg2', comm_entry.command)

        comm_result_entry = CommandResultEntry.objects.all().first()

        self.assertEqual('error-text-1', comm_result_entry.error)
        self.assertEqual('out-text-1', comm_result_entry.out)
        self.assertEqual(0, comm_result_entry.status)

        self.assertEqual(sets_entry[0], comm_entry.command_set)
Exemplo n.º 24
0
    def test_layout_remains_active_because_project_index_is_correct(self):
        git_project_1 = GitProjectEntry.objects.create(
            url='http://www.test-1.com',
            name='git-project-1',
        )

        git_project_2 = GitProjectEntry.objects.create(
            url='http://www.test-2.com',
            name='git-project-2',
        )

        command_group_1 = BluesteelProjectController.create_default_command_group(
        )
        command_group_2 = BluesteelProjectController.create_default_command_group(
        )

        project_entry_1 = BluesteelProjectEntry.objects.create(
            layout=self.layout_1,
            name='project-1',
            command_group=command_group_1,
            git_project=git_project_1,
        )

        project_entry_2 = BluesteelProjectEntry.objects.create(
            layout=self.layout_1,
            name='project-2',
            command_group=command_group_2,
            git_project=git_project_2,
        )

        self.assertEqual(0, self.layout_1.project_index_path)

        obj = {}
        obj['name'] = 'layout-1'
        obj['active'] = True
        obj['project_index_path'] = 1

        resp = self.client.post('/main/layout/{0}/save/'.format(
            self.layout_1.id),
                                data=json.dumps(obj),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(True,
                         BluesteelLayoutEntry.objects.all().first().active)
        self.assertEqual(
            1,
            BluesteelLayoutEntry.objects.all().first().project_index_path)
    def test_save_benchmark_stores_the_correct_json(self):
        execution = BenchmarkExecutionController.create_benchmark_execution(
            self.benchmark_definition1, self.commit1, self.worker1)

        obj = {
            'command_set': [{
                'command': 'command-vertical-bars',
                'result': {
                    'status':
                    0,
                    'out': [{
                        'visual_type': 'vertical_bars',
                        'id': 'id1',
                        'data': [1, 2, 3, 4, 5]
                    }, {
                        'visual_type': 'text',
                        'id': 'id2',
                        'data': 'this is a text, very long'
                    }],
                    'error':
                    '',
                    'start_time':
                    str(timezone.now()),
                    'finish_time':
                    str(timezone.now())
                },
            }]
        }

        resp = self.client.post('/main/execution/{0}/save/'.format(
            execution.id),
                                data=json.dumps(obj),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])

        execution = BenchmarkExecutionEntry.objects.filter(
            definition=self.benchmark_definition1).first()
        obj = json.loads(CommandResultEntry.objects.all().first().out)

        self.assertEqual(2, len(obj))
        self.assertEqual('id1', obj[0]['id'])
        self.assertEqual('vertical_bars', obj[0]['visual_type'])
        self.assertEqual([1, 2, 3, 4, 5], obj[0]['data'])
        self.assertEqual('id2', obj[1]['id'])
        self.assertEqual('text', obj[1]['visual_type'])
        self.assertEqual('this is a text, very long', obj[1]['data'])
    def test_get_all_layouts_urls(self):
        resp = self.client.get('/main/layout/all/urls/')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(3, len(resp_obj['data']['layouts']))

        self.assertTrue(
            'http://testserver/main/layout/1/' in resp_obj['data']['layouts'])
        self.assertTrue(
            'http://testserver/main/layout/2/' in resp_obj['data']['layouts'])
        self.assertTrue(
            'http://testserver/main/layout/3/' in resp_obj['data']['layouts'])
    def test_get_known_commit_hashes(self):
        resp = self.client.get('/main/commit/all/project/{0}/hashes/'.format(
            self.git_project1.id))

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(2, len(resp_obj['data']['hashes']))
        self.assertTrue('0000100001000010000100001000010000100001' in
                        resp_obj['data']['hashes'])
        self.assertFalse('0000200002000020000200002000020000200002' in
                         resp_obj['data']['hashes'])
        self.assertTrue('0000300003000030000300003000030000300003' in
                        resp_obj['data']['hashes'])
Exemplo n.º 28
0
    def test_save_bluesteel_project_removing_everything_in_path(self):
        commands = []
        commands.append('command-1')
        commands.append('command-2')
        commands.append('command-3')

        commands2 = []
        commands2.append('command-4')
        commands2.append('command-5')
        commands2.append('command-6')

        command_group = CommandGroupEntry.objects.create()
        CommandController.add_full_command_set(command_group, "CLONE", 0,
                                               commands)
        CommandController.add_full_command_set(command_group, "FETCH", 1,
                                               commands2)

        git_project = GitProjectEntry.objects.create(url='',
                                                     name='git-project')

        bluesteel_proj = BluesteelProjectEntry.objects.create(
            name='project-1',
            layout=self.layout_1,
            command_group=command_group,
            git_project=git_project)

        obj = {}
        obj['name'] = 'NAME-updated'
        obj['git_project_folder_search_path'] = '\\..\\'
        obj['clone'] = []
        obj['clone'].append('command-28')
        obj['clone'].append('command-29')
        obj['fetch'] = []
        obj['fetch'].append('command-30')
        obj['fetch'].append('command-31')

        resp = self.client.post('/main/project/{0}/save/'.format(
            bluesteel_proj.id),
                                data=json.dumps(obj),
                                content_type='application/json')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual(
            '.',
            BluesteelProjectEntry.objects.all().first().
            git_project_folder_search_path)
Exemplo n.º 29
0
    def test_get_bootstrap_urls(self):
        resp = self.client.get('/main/bluesteelworker/bootstrap/')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        self.assertEqual(200, resp_obj['status'])
        self.assertEqual('http://testserver/main/layout/all/urls/',
                         resp_obj['data']['layouts_url'])
        self.assertEqual('http://testserver/main/bluesteelworker/',
                         resp_obj['data']['worker_info_url'])
        self.assertEqual('http://testserver/main/bluesteelworker/create/',
                         resp_obj['data']['create_worker_url'])
        self.assertEqual('http://testserver/main/bluesteelworker/login/',
                         resp_obj['data']['login_worker_url'])
Exemplo n.º 30
0
    def test_creation_of_worker_also_create_worker_passes(self):
        self.worker_1.delete()
        self.assertEqual(0, WorkerEntry.objects.all().count())

        command_group = CommandGroupEntry.objects.create()
        command_set = CommandSetEntry.objects.create(group=command_group)

        bluesteel_layout = BluesteelLayoutEntry.objects.create(
            name='Layout', active=True, project_index_path=0)
        bluesteel_project = BluesteelProjectEntry.objects.create(
            name='Project',
            order=0,
            layout=bluesteel_layout,
            command_group=command_group,
            git_project=self.git_project1)

        benchmark_definition1 = BenchmarkDefinitionEntry.objects.create(
            name='BenchmarkDefinition1',
            layout=bluesteel_layout,
            project=bluesteel_project,
            command_set=command_set,
            revision=28)

        post_data = {}
        post_data['uuid'] = '8a88432d-33db-4d24-a0a7-0000007e8e4a'
        post_data['operative_system'] = 'osx'
        post_data['host_name'] = 'host-name'

        post_str = json.dumps(post_data)

        resp = self.client.post('/main/bluesteelworker/create/',
                                data=post_str,
                                content_type='text/plain')

        res.check_cross_origin_headers(self, resp)
        resp_obj = json.loads(resp.content)

        worker = WorkerEntry.objects.all().first()

        self.assertEqual(1, BenchmarkDefinitionEntry.objects.all().count())
        self.assertEqual(1, WorkerEntry.objects.all().count())
        self.assertEqual(
            1,
            BenchmarkDefinitionWorkerPassEntry.objects.all().count())
        self.assertEqual(
            1,
            BenchmarkDefinitionWorkerPassEntry.objects.filter(
                definition=benchmark_definition1, worker=worker).count())