|
| 1 | +# encoding: utf-8 |
| 2 | + |
| 3 | +""" |
| 4 | +Test suite for the docx.parts.settings module |
| 5 | +""" |
| 6 | + |
| 7 | +from __future__ import ( |
| 8 | + absolute_import, division, print_function, unicode_literals |
| 9 | +) |
| 10 | + |
| 11 | +import pytest |
| 12 | + |
| 13 | +from docx.parts.settings import SettingsPart |
| 14 | +from docx.settings import Settings |
| 15 | + |
| 16 | +from ..unitutil.cxml import element |
| 17 | +from ..unitutil.mock import class_mock, instance_mock |
| 18 | + |
| 19 | + |
| 20 | +class DescribeSettingsPart(object): |
| 21 | + |
| 22 | + def it_provides_access_to_its_settings(self, settings_fixture): |
| 23 | + settings_part, Settings_, settings_ = settings_fixture |
| 24 | + settings = settings_part.settings |
| 25 | + Settings_.assert_called_once_with(settings_part.element) |
| 26 | + assert settings is settings_ |
| 27 | + |
| 28 | + # fixtures ------------------------------------------------------- |
| 29 | + |
| 30 | + @pytest.fixture |
| 31 | + def settings_fixture(self, Settings_, settings_): |
| 32 | + settings_elm = element('w:settings') |
| 33 | + settings_part = SettingsPart(None, None, settings_elm, None) |
| 34 | + return settings_part, Settings_, settings_ |
| 35 | + |
| 36 | + # fixture components --------------------------------------------- |
| 37 | + |
| 38 | + @pytest.fixture |
| 39 | + def Settings_(self, request, settings_): |
| 40 | + return class_mock( |
| 41 | + request, 'docx.parts.settings.Settings', return_value=settings_ |
| 42 | + ) |
| 43 | + |
| 44 | + @pytest.fixture |
| 45 | + def settings_(self, request): |
| 46 | + return instance_mock(request, Settings) |
0 commit comments