#include "py_variant.h" #include "ut3/py_test_engine.h" #include #include using namespace NPython; Y_UNIT_TEST_SUITE(TPyTzDateTest) { Y_UNIT_TEST(FromDate) { TPythonTestEngine engine; engine.ToMiniKQL( "def Test():\n" " return (2, 'Europe/Moscow')\n", [](const NUdf::TUnboxedValuePod& value) { UNIT_ASSERT(value); UNIT_ASSERT_VALUES_EQUAL(value.Get(), 2); UNIT_ASSERT_VALUES_EQUAL(value.GetTimezoneId(), NKikimr::NMiniKQL::GetTimezoneId("Europe/Moscow")); }); } Y_UNIT_TEST(FromDatetime) { TPythonTestEngine engine; engine.ToMiniKQL( "def Test():\n" " return (2, 'Europe/Moscow')\n", [](const NUdf::TUnboxedValuePod& value) { UNIT_ASSERT(value); UNIT_ASSERT_VALUES_EQUAL(value.Get(), 2); UNIT_ASSERT_VALUES_EQUAL(value.GetTimezoneId(), NKikimr::NMiniKQL::GetTimezoneId("Europe/Moscow")); }); } Y_UNIT_TEST(FromTimestamp) { TPythonTestEngine engine; engine.ToMiniKQL( "def Test():\n" " return (2, 'Europe/Moscow')\n", [](const NUdf::TUnboxedValuePod& value) { UNIT_ASSERT(value); UNIT_ASSERT_VALUES_EQUAL(value.Get(), 2); UNIT_ASSERT_VALUES_EQUAL(value.GetTimezoneId(), NKikimr::NMiniKQL::GetTimezoneId("Europe/Moscow")); }); } Y_UNIT_TEST(ToDate) { TPythonTestEngine engine; engine.ToPython( [](const TType* /*type*/, const NUdf::IValueBuilder& /*vb*/) { auto ret = NUdf::TUnboxedValuePod((ui16)2); ret.SetTimezoneId(NKikimr::NMiniKQL::GetTimezoneId("Europe/Moscow")); return ret; }, "def Test(value):\n" " assert isinstance(value, tuple)\n" " assert value == (2, 'Europe/Moscow')\n"); } Y_UNIT_TEST(ToDatetime) { TPythonTestEngine engine; engine.ToPython( [](const TType* /*type*/, const NUdf::IValueBuilder& /*vb*/) { auto ret = NUdf::TUnboxedValuePod((ui32)2); ret.SetTimezoneId(NKikimr::NMiniKQL::GetTimezoneId("Europe/Moscow")); return ret; }, "def Test(value):\n" " assert isinstance(value, tuple)\n" " assert value == (2, 'Europe/Moscow')\n"); } Y_UNIT_TEST(ToTimestamp) { TPythonTestEngine engine; engine.ToPython( [](const TType* /*type*/, const NUdf::IValueBuilder& /*vb*/) { auto ret = NUdf::TUnboxedValuePod((ui64)2); ret.SetTimezoneId(NKikimr::NMiniKQL::GetTimezoneId("Europe/Moscow")); return ret; }, "def Test(value):\n" " assert isinstance(value, tuple)\n" " assert value == (2, 'Europe/Moscow')\n"); } }