84 lines
2.3 KiB
Python
84 lines
2.3 KiB
Python
import pytest
|
|
import os
|
|
try:
|
|
import coverage
|
|
except ImportError:
|
|
pytestmark = pytest.mark.skip("coverage not available")
|
|
|
|
|
|
kv_statement_lines = {4, 5, 6, 8, 9, 12, 15, 17}
|
|
|
|
|
|
def test_coverage_base():
|
|
from kivy.lang.builder import Builder
|
|
cov = coverage.Coverage(source=[os.path.dirname(__file__)])
|
|
cov.start()
|
|
|
|
fname = os.path.join(os.path.dirname(__file__), 'coverage_lang.kv')
|
|
try:
|
|
widget = Builder.load_file(fname)
|
|
finally:
|
|
cov.stop()
|
|
|
|
Builder.unload_file(fname)
|
|
_, statements, missing, _ = cov.analysis(fname)
|
|
assert set(statements) == kv_statement_lines
|
|
assert set(missing) == {4, 8, 9}
|
|
|
|
|
|
def test_coverage_multiline_on_event():
|
|
from kivy.lang.builder import Builder
|
|
cov = coverage.Coverage(source=[os.path.dirname(__file__)])
|
|
cov.start()
|
|
|
|
fname = os.path.join(os.path.dirname(__file__), 'coverage_lang.kv')
|
|
try:
|
|
widget = Builder.load_file(fname)
|
|
widget.children[0].y = 65
|
|
finally:
|
|
cov.stop()
|
|
|
|
Builder.unload_file(fname)
|
|
_, statements, missing, _ = cov.analysis(fname)
|
|
assert set(statements) == kv_statement_lines
|
|
assert set(missing) == {4, }
|
|
|
|
|
|
def test_coverage_trigger_event():
|
|
from kivy.lang.builder import Builder
|
|
cov = coverage.Coverage(source=[os.path.dirname(__file__)])
|
|
cov.start()
|
|
|
|
fname = os.path.join(os.path.dirname(__file__), 'coverage_lang.kv')
|
|
try:
|
|
widget = Builder.load_file(fname)
|
|
widget.children[0].x = 65
|
|
widget.children[0].width = 97
|
|
finally:
|
|
cov.stop()
|
|
|
|
Builder.unload_file(fname)
|
|
_, statements, missing, _ = cov.analysis(fname)
|
|
assert set(statements) == kv_statement_lines
|
|
assert set(missing) == {8, 9}
|
|
|
|
|
|
def test_coverage_trigger_all():
|
|
from kivy.lang.builder import Builder
|
|
cov = coverage.Coverage(source=[os.path.dirname(__file__)])
|
|
cov.start()
|
|
|
|
fname = os.path.join(os.path.dirname(__file__), 'coverage_lang.kv')
|
|
try:
|
|
widget = Builder.load_file(fname)
|
|
widget.children[0].x = 65
|
|
widget.children[0].width = 97
|
|
widget.children[0].y = 65
|
|
finally:
|
|
cov.stop()
|
|
|
|
Builder.unload_file(fname)
|
|
_, statements, missing, _ = cov.analysis(fname)
|
|
assert set(statements) == kv_statement_lines
|
|
assert set(missing) == set()
|