From cca66b9ec4e494c1d919bff0f71a820d8afab1fa Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:24:48 +0200 Subject: Adding upstream version 1.2.2. Signed-off-by: Daniel Baumann --- share/extensions/tests/test_svgcalendar.py | 122 +++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 share/extensions/tests/test_svgcalendar.py (limited to 'share/extensions/tests/test_svgcalendar.py') diff --git a/share/extensions/tests/test_svgcalendar.py b/share/extensions/tests/test_svgcalendar.py new file mode 100644 index 0000000..e69739c --- /dev/null +++ b/share/extensions/tests/test_svgcalendar.py @@ -0,0 +1,122 @@ +# coding=utf-8 +""" +All tests for the svg calendar extension +""" +import calendar +import datetime + +from svgcalendar import Calendar +from inkex.tester import ComparisonMixin, TestCase +from inkex.tester.filters import CompareOrderIndependentStyle, CompareNumericFuzzy +from inkex.tester.mock import MockMixin + + +class FrozenDateTime(datetime.datetime): + @classmethod + def today(cls): + return cls(2019, 11, 5) + + +class CalendarArguments(ComparisonMixin, TestCase): + """Test arguments to calendar extensions""" + + effect_class = Calendar + compare_filters = [CompareOrderIndependentStyle(), CompareNumericFuzzy()] + comparisons = [ + ( + "--color-year=#888", + "--color-month=#666", + "--color-day-name=#999", + "--color-day=#000", + "--color-weekend=#777", + "--color-nmd=#BBB", + "--color-weeknr=#808080", + "--encoding=UTF-8", + ) + ] + mocks = [(datetime, "datetime", FrozenDateTime)] + + def test_default_names_list(self): + """Test default names""" + effect = self.assertEffect() + self.assertEqual(effect.options.month_names[0], "January") + self.assertEqual(effect.options.month_names[11], "December") + self.assertEqual(effect.options.day_names[0], "Sun") + self.assertEqual(effect.options.day_names[6], "Sat") + self.assertEqual(effect.options.year, datetime.datetime.today().year) + self.assertEqual(calendar.firstweekday(), 6) + + def test_modifyed_names_list(self): + """Test modified names list""" + effect = self.assertEffect( + args=[ + "--month-names=JAN FEV MAR ABR MAI JUN JUL AGO SET OUT NOV DEZ", + "--day-names=DOM SEG TER QUA QUI SEX SAB", + ] + ) + self.assertEqual(effect.options.month_names[0], "JAN") + self.assertEqual(effect.options.month_names[11], "DEZ") + self.assertEqual(effect.options.day_names[0], "DOM") + self.assertEqual(effect.options.day_names[6], "SAB") + + def test_starting_names_list(self): + """Starting or ending spaces must not affect names""" + effect = self.assertEffect( + args=[ + "--month-names= JAN FEV MAR ABR MAI JUN JUL AGO SET OUT NOV DEZ ", + "--day-names= DOM SEG TER QUA QUI SEX SAB ", + ] + ) + self.assertEqual(effect.options.month_names[0], "JAN") + self.assertEqual(effect.options.month_names[11], "DEZ") + self.assertEqual(effect.options.day_names[0], "DOM") + self.assertEqual(effect.options.day_names[6], "SAB") + + def test_inner_extra_spaces(self): + """Extra spaces must not affect names""" + effect = self.assertEffect( + args=[ + "--month-names=JAN FEV MAR ABR MAI JUN JUL AGO SET OUT NOV DEZ", + "--day-names=DOM SEG TER QUA QUI SEX SAB", + ] + ) + self.assertEqual(effect.options.month_names[0], "JAN") + self.assertEqual(effect.options.month_names[2], "MAR") + self.assertEqual(effect.options.month_names[11], "DEZ") + self.assertEqual(effect.options.day_names[0], "DOM") + self.assertEqual(effect.options.day_names[2], "TER") + self.assertEqual(effect.options.day_names[6], "SAB") + + def test_converted_year_zero(self): + """Year equal to 0 is converted to correct year""" + effect = self.assertEffect(args=["--year=0"]) + self.assertEqual(effect.options.year, datetime.datetime.today().year) + + def test_converted_year_thousand(self): + """Year equal to 2000 configuration""" + effect = self.assertEffect(args=["--year=2000"]) + self.assertEqual(effect.options.year, 2000) + + def test_configuring_week_start_sun(self): + """Week start is set to Sunday""" + self.assertEffect(args=["--start-day=sun"]) + self.assertEqual(calendar.firstweekday(), 6) + + def test_configuring_week_start_mon(self): + """Week start is set to Monday""" + self.assertEffect(args=["--start-day=mon"]) + self.assertEqual(calendar.firstweekday(), 0) + + def test_recognize_a_weekend(self): + """Recognise a weekend""" + effect = self.assertEffect( + args=[ + "--start-day=sun", + "--weekend=sat+sun", + ] + ) + self.assertTrue(effect.is_weekend(0), "Sunday is weekend in this configuration") + self.assertTrue( + effect.is_weekend(6), "Saturday is weekend in this configuration" + ) + self.assertFalse(effect.is_weekend(1), "Monday is NOT weekend") -- cgit v1.2.3