def test_generate_report(self):
        git = Mock().expect_generate_annotated_commits_with_details("jira-stats", toReturn=[
            {
                'hash': '12121212',
                'shorthash': '1212',
                'commiter': 'Mark <unit@tester>',
                'date': 1371114910,
                'note': '{"metrics": {"test.metric": 1}, "build_number": "BN-2"}'
            },
            {
                'hash': '58585858',
                'shorthash': '5858',
                'commiter': 'Frank <frank@localhost>',
                'date': 1371111910,
                'note': '{"metrics": {"test.metric": 3}, "build_number": "BN-1"}'
            },
        ]).ordered_get_commit_details("jira-stats", toReturn={
            'hash': '34343434',
            'shorthash': '3434',
            'commiter': 'Unit Tester <unit@tester>',
            'date': 1371114916,
            'note': ''
        })

        json_writter = Mock().ordered_as_str({'points': [
            {
                'metrics': {
                    'test.metric': 3
                },
                'commits': [
                    {
                        'hash': '58585858',
                        'shorthash': '5858',
                        'commiter': 'Frank <frank@localhost>',
                        'date': 1371111910
                    }
                ],
                'date': 1371111910,
                'build_number': 'BN-1'
            },
            {
                'metrics': {
                    'test.metric': 1
                },
                'commits': [
                    {
                        'hash': '12121212',
                        'shorthash': '1212',
                        'commiter': 'Mark <unit@tester>',
                        'date': 1371114910
                    }
                ],
                'date': 1371114910,
                'build_number': 'BN-2'
            },
            {
                'metrics': {
                    'test.metric': 2
                },
                'commits': [
                    {
                        'date': 1371114916,
                        'commiter': 'Unit Tester <unit@tester>',
                        'shorthash': '3434',
                        'hash': '34343434'
                    }
                ],
                'date': 1371114916,
                'build_number': 'current'
            }
        ]}, toReturn='__JSON__')

        file_utils = MockFileUtils()
        log = Mock()

        current_metrics = DataBean(metrics={
            "test.metric": 2
        })

        processor = MetricsProcessor()
        generate_report_closure = processor.generate_report(current_metrics, file_utils, git, json_writter)
        generate_report_closure(log)
        self.assertTrue(file_utils.verify_write_lines(os.sep.join(['target','eh-metrics-report','js','data.js']),
            ['(function() { var data = __JSON__; executeReport(data); })();']))
Esempio n. 2
0
    def test_generate_report(self):
        git = Mock().expect_generate_annotated_commits_with_details(
            "jira-stats",
            toReturn=[
                {
                    'hash':
                    '12121212',
                    'shorthash':
                    '1212',
                    'commiter':
                    'Mark <unit@tester>',
                    'date':
                    1371114910,
                    'note':
                    '{"metrics": {"test.metric": 1}, "build_number": "BN-2"}'
                },
                {
                    'hash':
                    '58585858',
                    'shorthash':
                    '5858',
                    'commiter':
                    'Frank <frank@localhost>',
                    'date':
                    1371111910,
                    'note':
                    '{"metrics": {"test.metric": 3}, "build_number": "BN-1"}'
                },
            ]).ordered_get_commit_details("jira-stats",
                                          toReturn={
                                              'hash': '34343434',
                                              'shorthash': '3434',
                                              'commiter':
                                              'Unit Tester <unit@tester>',
                                              'date': 1371114916,
                                              'note': ''
                                          })

        json_writter = Mock().ordered_as_str(
            {
                'points': [{
                    'metrics': {
                        'test.metric': 3
                    },
                    'commits': [{
                        'hash': '58585858',
                        'shorthash': '5858',
                        'commiter': 'Frank <frank@localhost>',
                        'date': 1371111910
                    }],
                    'date':
                    1371111910,
                    'build_number':
                    'BN-1'
                }, {
                    'metrics': {
                        'test.metric': 1
                    },
                    'commits': [{
                        'hash': '12121212',
                        'shorthash': '1212',
                        'commiter': 'Mark <unit@tester>',
                        'date': 1371114910
                    }],
                    'date':
                    1371114910,
                    'build_number':
                    'BN-2'
                }, {
                    'metrics': {
                        'test.metric': 2
                    },
                    'commits': [{
                        'date': 1371114916,
                        'commiter': 'Unit Tester <unit@tester>',
                        'shorthash': '3434',
                        'hash': '34343434'
                    }],
                    'date':
                    1371114916,
                    'build_number':
                    'current'
                }]
            },
            toReturn='__JSON__')

        file_utils = MockFileUtils()
        log = Mock()

        current_metrics = DataBean(metrics={"test.metric": 2})

        processor = MetricsProcessor()
        generate_report_closure = processor.generate_report(
            current_metrics, file_utils, git, json_writter)
        generate_report_closure(log)
        self.assertTrue(
            file_utils.verify_write_lines(
                os.sep.join(['target', 'eh-metrics-report', 'js', 'data.js']),
                [
                    '(function() { var data = __JSON__; executeReport(data); })();'
                ]))