From 5c151516f8f26a20d1a487b7523131f9b7a23c3c Mon Sep 17 00:00:00 2001 From: Jace Browning Date: Tue, 1 Oct 2019 19:12:40 -0400 Subject: [PATCH] Add test for known future annotations failure --- tests/test_custom_converters_future.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/test_custom_converters_future.py b/tests/test_custom_converters_future.py index e4305e85..df9895e6 100644 --- a/tests/test_custom_converters_future.py +++ b/tests/test_custom_converters_future.py @@ -1,12 +1,12 @@ -# pylint: disable=arguments-differ +# pylint: disable=arguments-differ,no-member from __future__ import annotations # this breaks custom converter lookup -from datetime import datetime +from typing import Optional import pytest -from datafiles import Missing, datafile +from datafiles import datafile from .test_custom_converters import MyDateTime @@ -14,14 +14,18 @@ @pytest.mark.flaky def test_extension(expect): @datafile("../tmp/sample.yml") - class Timestamp: - dt: MyDateTime + class MyObject: + value: MyDateTime - ts = Timestamp(MyDateTime(2019, 1, 29)) - expect(ts.datafile.text) == "dt: '2019-01-29T00:00:00'\n" + x = MyObject(MyDateTime(2019, 1, 29)) + expect(x.datafile.text) == "value: '2019-01-29T00:00:00'\n" - ts = Timestamp(Missing) # type: ignore - expect(ts.dt) == datetime(2019, 1, 29) - ts.datafile.text = "dt: '2019-01-11T00:00:00'\n" - expect(ts.dt.day) == 11 +@pytest.mark.xfail(reason='https://github.com/jacebrowning/datafiles/issues/131') +def test_optional(expect): + @datafile("../tmp/sample.yml") + class MyObject: + value: Optional[int] + + x = MyObject(42) + expect(x.datafile.text) == "value: 42'\n"