| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright 2015 The Chromium Authors. All rights reserved. | 2 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import os | 6 import os |
| 7 import sys | 7 import sys |
| 8 import unittest | 8 import unittest |
| 9 from xml.etree import ElementTree | 9 from xml.etree import ElementTree |
| 10 | 10 |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 'total': 5 | 394 'total': 5 |
| 395 }, | 395 }, |
| 396 'incremental': { | 396 'incremental': { |
| 397 'covered': 2.05, | 397 'covered': 2.05, |
| 398 'total': 3 | 398 'total': 3 |
| 399 }, | 399 }, |
| 400 'source': [ | 400 'source': [ |
| 401 { | 401 { |
| 402 'line': line_coverage[0].source, | 402 'line': line_coverage[0].source, |
| 403 'coverage': line_coverage[0].covered_status, | 403 'coverage': line_coverage[0].covered_status, |
| 404 'changed': True | 404 'changed': True, |
| 405 'fractional_coverage': line_coverage[0].fractional_line_coverage, |
| 405 }, | 406 }, |
| 406 { | 407 { |
| 407 'line': line_coverage[1].source, | 408 'line': line_coverage[1].source, |
| 408 'coverage': line_coverage[1].covered_status, | 409 'coverage': line_coverage[1].covered_status, |
| 409 'changed': False | 410 'changed': False, |
| 411 'fractional_coverage': line_coverage[1].fractional_line_coverage, |
| 410 }, | 412 }, |
| 411 { | 413 { |
| 412 'line': line_coverage[2].source, | 414 'line': line_coverage[2].source, |
| 413 'coverage': line_coverage[2].covered_status, | 415 'coverage': line_coverage[2].covered_status, |
| 414 'changed': True | 416 'changed': True, |
| 417 'fractional_coverage': line_coverage[2].fractional_line_coverage, |
| 415 }, | 418 }, |
| 416 { | 419 { |
| 417 'line': line_coverage[3].source, | 420 'line': line_coverage[3].source, |
| 418 'coverage': line_coverage[3].covered_status, | 421 'coverage': line_coverage[3].covered_status, |
| 419 'changed': False | 422 'changed': False, |
| 423 'fractional_coverage': line_coverage[3].fractional_line_coverage, |
| 420 }, | 424 }, |
| 421 { | 425 { |
| 422 'line': line_coverage[4].source, | 426 'line': line_coverage[4].source, |
| 423 'coverage': line_coverage[4].covered_status, | 427 'coverage': line_coverage[4].covered_status, |
| 424 'changed': True | 428 'changed': True, |
| 429 'fractional_coverage': line_coverage[4].fractional_line_coverage, |
| 425 }, | 430 }, |
| 426 { | 431 { |
| 427 'line': line_coverage[5].source, | 432 'line': line_coverage[5].source, |
| 428 'coverage': line_coverage[5].covered_status, | 433 'coverage': line_coverage[5].covered_status, |
| 429 'changed': True | 434 'changed': True, |
| 435 'fractional_coverage': line_coverage[5].fractional_line_coverage, |
| 430 } | 436 } |
| 431 ] | 437 ] |
| 432 } | 438 } |
| 433 result_dict = self.simple_coverage.GetCoverageDictForFile( | 439 result_dict = self.simple_coverage.GetCoverageDictForFile( |
| 434 '/fake/src', lines) | 440 '/fake/src', lines) |
| 435 self.assertDictEqual(result_dict, expected_dict) | 441 self.assertDictEqual(result_dict, expected_dict) |
| 436 | 442 |
| 437 def testGetCoverageDictForFile_emptyCoverage(self): | 443 def testGetCoverageDictForFile_emptyCoverage(self): |
| 438 expected_dict = { | 444 expected_dict = { |
| 439 'absolute': {'covered': 0, 'total': 0}, | 445 'absolute': {'covered': 0, 'total': 0}, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 1, '', emma_coverage_stats.NOT_COVERED, 1.0), | 481 1, '', emma_coverage_stats.NOT_COVERED, 1.0), |
| 476 emma_coverage_stats.LineCoverage( | 482 emma_coverage_stats.LineCoverage( |
| 477 2, '', emma_coverage_stats.COVERED, 1.0) | 483 2, '', emma_coverage_stats.COVERED, 1.0) |
| 478 ] | 484 ] |
| 479 } | 485 } |
| 480 expected_dict = { | 486 expected_dict = { |
| 481 'files': { | 487 'files': { |
| 482 '/path/2/File2.java': { | 488 '/path/2/File2.java': { |
| 483 'absolute': {'covered': 1, 'total': 2}, | 489 'absolute': {'covered': 1, 'total': 2}, |
| 484 'incremental': {'covered': 1, 'total': 2}, | 490 'incremental': {'covered': 1, 'total': 2}, |
| 485 'source': [{'changed': True, 'coverage': 0, 'line': ''}, | 491 'source': [{'changed': True, 'coverage': 0, |
| 486 {'changed': True, 'coverage': 1, 'line': ''}] | 492 'line': '', 'fractional_coverage': 1.0}, |
| 493 {'changed': True, 'coverage': 1, |
| 494 'line': '', 'fractional_coverage': 1.0}] |
| 487 }, | 495 }, |
| 488 '/path/to/1/File1.java': { | 496 '/path/to/1/File1.java': { |
| 489 'absolute': {'covered': 2.5, 'total': 3}, | 497 'absolute': {'covered': 2.5, 'total': 3}, |
| 490 'incremental': {'covered': 2, 'total': 2}, | 498 'incremental': {'covered': 2, 'total': 2}, |
| 491 'source': [{'changed': True, 'coverage': 1, 'line': ''}, | 499 'source': [{'changed': True, 'coverage': 1, |
| 492 {'changed': False, 'coverage': 2, 'line': ''}, | 500 'line': '', 'fractional_coverage': 1.0}, |
| 493 {'changed': True, 'coverage': -1, 'line': ''}, | 501 {'changed': False, 'coverage': 2, |
| 494 {'changed': True, 'coverage': 1, 'line': ''}] | 502 'line': '', 'fractional_coverage': 0.5}, |
| 503 {'changed': True, 'coverage': -1, |
| 504 'line': '', 'fractional_coverage': 1.0}, |
| 505 {'changed': True, 'coverage': 1, |
| 506 'line': '', 'fractional_coverage': 1.0}] |
| 495 } | 507 } |
| 496 }, | 508 }, |
| 497 'patch': {'incremental': {'covered': 3, 'total': 4}} | 509 'patch': {'incremental': {'covered': 3, 'total': 4}} |
| 498 } | 510 } |
| 499 # Return the relevant coverage info for each file. We aren't testing | 511 # Return the relevant coverage info for each file. |
| 500 # _GetCoverageStatusForFile here. | |
| 501 self.simple_coverage._emma_parser.GetLineCoverage = ( | 512 self.simple_coverage._emma_parser.GetLineCoverage = ( |
| 502 lambda x: coverage_info[x]) | 513 lambda x: coverage_info[x]) |
| 503 result_dict = self.simple_coverage.GetCoverageDict(files_for_coverage) | 514 result_dict = self.simple_coverage.GetCoverageDict(files_for_coverage) |
| 504 self.assertDictEqual(result_dict, expected_dict) | 515 self.assertDictEqual(result_dict, expected_dict) |
| 505 | 516 |
| 506 def testGetCoverageDict_noCoverage(self): | 517 def testGetCoverageDict_noCoverage(self): |
| 507 result_dict = self.simple_coverage.GetCoverageDict({}) | 518 result_dict = self.simple_coverage.GetCoverageDict({}) |
| 508 self.assertDictEqual(result_dict, EMPTY_COVERAGE_STATS_DICT) | 519 self.assertDictEqual(result_dict, EMPTY_COVERAGE_STATS_DICT) |
| 509 | 520 |
| 510 | 521 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 mock_open = mock.mock_open() | 555 mock_open = mock.mock_open() |
| 545 mock_open.side_effect = [mock.mock_open(read_data=side_effect).return_value | 556 mock_open.side_effect = [mock.mock_open(read_data=side_effect).return_value |
| 546 for side_effect in side_effects] | 557 for side_effect in side_effects] |
| 547 with mock.patch('__builtin__.open', mock_open): | 558 with mock.patch('__builtin__.open', mock_open): |
| 548 return func(**kwargs), mock_open | 559 return func(**kwargs), mock_open |
| 549 | 560 |
| 550 | 561 |
| 551 if __name__ == '__main__': | 562 if __name__ == '__main__': |
| 552 # Suppress logging messages. | 563 # Suppress logging messages. |
| 553 unittest.main(buffer=True) | 564 unittest.main(buffer=True) |
| OLD | NEW |