示例#1
0
 def test_work_week_returned_in_workday_only_mode(self):
     """Tests only workdays are returned in workday-mode."""
     self.assertEqual(
         util.parse_date_range('this week', workdays_only=True), [
             util.strict_parse_date('Mon Mar 19, 2018'),
             util.strict_parse_date('Tue Mar 20, 2018'),
             util.strict_parse_date('Wed Mar 21, 2018'),
             util.strict_parse_date('Thu Mar 22, 2018'),
             util.strict_parse_date('Fri Mar 23, 2018'),
         ])
示例#2
0
class OptionsTest(fake_filesystem_unittest.TestCase):
    """Tests for the Options class"""
    def setUp(self):
        self.setUpPyfakefs()

    @freezegun.freeze_time(util.strict_parse_date('Mon Mar 26, 2018'))
    def test_default_behavior(self):
        """Tests nothing special happens when arbitrary args are passed."""
        argv = ['config_test.py', 'command', 'line', 'args']
        options, remaining_argv = config.Options.from_argv(argv)
        self.assertFalse(options.workdays_only)
        self.assertEqual(options.data_path,
                         os.path.expanduser('~/.rednotebook/data'))
        self.assertEqual(options.default_date_range,
                         [util.strict_parse_date('Mon Mar 26, 2018')])
        self.assertEqual(remaining_argv, ['command', 'line', 'args'])

    def test_change_work_options(self):
        """Tests workday mode changes made in the config_options file."""
        self.fs.create_file(os.path.expanduser('~/.rn2mdrc'),
                            contents="""
        [DEFAULT]
        workday mode=on
        """)
        options, unused_remaining_argv = config.Options.from_argv([])
        self.assertTrue(options.workdays_only)

    def test_change_data_path(self):
        """Test data path changes made in the config file."""
        self.fs.create_file(os.path.expanduser('~/.rn2mdrc'),
                            contents="""
        [DEFAULT]
        data path=/test
        """)
        options, unused_remaining_argv = config.Options.from_argv([])
        self.assertEqual(options.data_path, '/test')

    @freezegun.freeze_time(util.strict_parse_date('Mon Mar 26, 2018'))
    def test_change_default_date_range(self):
        """Test default date range changes made in the config file."""
        self.fs.create_file(os.path.expanduser('~/.rn2mdrc'),
                            contents="""
        [DEFAULT]
        default date range=last week
        """)
        options, unused_remaining_argv = config.Options.from_argv([])
        self.assertEqual(options.default_date_range, [
            util.strict_parse_date('Mon Mar 19, 2018'),
            util.strict_parse_date('Tue Mar 20, 2018'),
            util.strict_parse_date('Wed Mar 21, 2018'),
            util.strict_parse_date('Thu Mar 22, 2018'),
            util.strict_parse_date('Fri Mar 23, 2018'),
            util.strict_parse_date('Sat Mar 24, 2018'),
            util.strict_parse_date('Sun Mar 25, 2018'),
        ])
示例#3
0
 def test_default_behavior(self):
     """Tests nothing special happens when arbitrary args are passed."""
     argv = ['config_test.py', 'command', 'line', 'args']
     options, remaining_argv = config.Options.from_argv(argv)
     self.assertFalse(options.workdays_only)
     self.assertEqual(options.data_path,
                      os.path.expanduser('~/.rednotebook/data'))
     self.assertEqual(options.default_date_range,
                      [util.strict_parse_date('Mon Mar 26, 2018')])
     self.assertEqual(remaining_argv, ['command', 'line', 'args'])
示例#4
0
 def test_last_week(self):
     """Tests that last week returns all dates from last week."""
     self.assertEqual(util.parse_date_range('last week'), [
         util.strict_parse_date('Mon Mar 19, 2018'),
         util.strict_parse_date('Tue Mar 20, 2018'),
         util.strict_parse_date('Wed Mar 21, 2018'),
         util.strict_parse_date('Thu Mar 22, 2018'),
         util.strict_parse_date('Fri Mar 23, 2018'),
         util.strict_parse_date('Sat Mar 24, 2018'),
         util.strict_parse_date('Sun Mar 25, 2018'),
     ])
示例#5
0
 def test_change_default_date_range(self):
     """Test default date range changes made in the config file."""
     self.fs.create_file(os.path.expanduser('~/.rn2mdrc'),
                         contents="""
     [DEFAULT]
     default date range=last week
     """)
     options, unused_remaining_argv = config.Options.from_argv([])
     self.assertEqual(options.default_date_range, [
         util.strict_parse_date('Mon Mar 19, 2018'),
         util.strict_parse_date('Tue Mar 20, 2018'),
         util.strict_parse_date('Wed Mar 21, 2018'),
         util.strict_parse_date('Thu Mar 22, 2018'),
         util.strict_parse_date('Fri Mar 23, 2018'),
         util.strict_parse_date('Sat Mar 24, 2018'),
         util.strict_parse_date('Sun Mar 25, 2018'),
     ])
示例#6
0
 def test_yesterday_on_sunday_returns_friday_in_workdays_only_mode(self):
     """Tests yesterday on sunday is friday for workday-mode."""
     self.assertEqual(
         util.parse_date_range('yesterday', workdays_only=True), [
             util.strict_parse_date('Fri Mar 23, 2018'),
         ])
示例#7
0
 def test_today_on_sunday_rounds_to_friday_in_workdays_only_mode(self):
     """Tests workday-mode rounds to friday on sundays."""
     self.assertEqual(util.parse_date_range('today', workdays_only=True), [
         util.strict_parse_date('Fri Mar 23, 2018'),
     ])
示例#8
0
class ParseDatesTest(unittest.TestCase):
    """Tests for the parse_date_range function."""
    @freezegun.freeze_time(util.strict_parse_date('Mar 24, 2018'))
    def test_today(self):
        """Tests that today returns a single-element list for today's date."""
        self.assertEqual(util.parse_date_range('today'), [
            util.strict_parse_date('Mar 24, 2018'),
        ])

    @freezegun.freeze_time(util.strict_parse_date('Fri Mar 23, 2018'))
    def test_this_week(self):
        """Tests that this week returns all dates in the week."""
        self.assertEqual(util.parse_date_range('this week'), [
            util.strict_parse_date('Mon Mar 19, 2018'),
            util.strict_parse_date('Tue Mar 20, 2018'),
            util.strict_parse_date('Wed Mar 21, 2018'),
            util.strict_parse_date('Thu Mar 22, 2018'),
            util.strict_parse_date('Fri Mar 23, 2018'),
            util.strict_parse_date('Sat Mar 24, 2018'),
            util.strict_parse_date('Sun Mar 25, 2018'),
        ])

    @freezegun.freeze_time(util.strict_parse_date('Mon Mar 26, 2018'))
    def test_last_week(self):
        """Tests that last week returns all dates from last week."""
        self.assertEqual(util.parse_date_range('last week'), [
            util.strict_parse_date('Mon Mar 19, 2018'),
            util.strict_parse_date('Tue Mar 20, 2018'),
            util.strict_parse_date('Wed Mar 21, 2018'),
            util.strict_parse_date('Thu Mar 22, 2018'),
            util.strict_parse_date('Fri Mar 23, 2018'),
            util.strict_parse_date('Sat Mar 24, 2018'),
            util.strict_parse_date('Sun Mar 25, 2018'),
        ])

    @freezegun.freeze_time(util.strict_parse_date('Sat Mar 24, 2018'))
    def test_today_on_saturday_rounds_to_friday_in_workdays_only_mode(self):
        """Tests workday-mode rounds to friday on saturdays."""
        self.assertEqual(util.parse_date_range('today', workdays_only=True), [
            util.strict_parse_date('Fri Mar 23, 2018'),
        ])

    @freezegun.freeze_time(util.strict_parse_date('Sun Mar 25, 2018'))
    def test_today_on_sunday_rounds_to_friday_in_workdays_only_mode(self):
        """Tests workday-mode rounds to friday on sundays."""
        self.assertEqual(util.parse_date_range('today', workdays_only=True), [
            util.strict_parse_date('Fri Mar 23, 2018'),
        ])

    @freezegun.freeze_time(util.strict_parse_date('Sat Mar 24, 2018'))
    def test_work_week_returned_in_workday_only_mode(self):
        """Tests only workdays are returned in workday-mode."""
        self.assertEqual(
            util.parse_date_range('this week', workdays_only=True), [
                util.strict_parse_date('Mon Mar 19, 2018'),
                util.strict_parse_date('Tue Mar 20, 2018'),
                util.strict_parse_date('Wed Mar 21, 2018'),
                util.strict_parse_date('Thu Mar 22, 2018'),
                util.strict_parse_date('Fri Mar 23, 2018'),
            ])

    @freezegun.freeze_time(util.strict_parse_date('Sun Mar 25, 2018'))
    def test_yesterday_on_sunday_returns_friday_in_workdays_only_mode(self):
        """Tests yesterday on sunday is friday for workday-mode."""
        self.assertEqual(
            util.parse_date_range('yesterday', workdays_only=True), [
                util.strict_parse_date('Fri Mar 23, 2018'),
            ])

    @freezegun.freeze_time(util.strict_parse_date('Mon Mar 26, 2018'))
    def test_yesterday_on_monday_returns_friday_in_workdays_only_mode(self):
        """Tests yesterday on monday is friday for workday-mode."""
        self.assertEqual(
            util.parse_date_range('yesterday', workdays_only=True), [
                util.strict_parse_date('Fri Mar 23, 2018'),
            ])

    @freezegun.freeze_time(util.strict_parse_date('Fri Mar 23, 2018'))
    def test_tomorrow_on_friday_returns_monday_in_workdays_only_mode(self):
        """Tests tomorrow on friday is monday for workday-only mode."""
        self.assertEqual(util.parse_date_range('tomorrow', workdays_only=True),
                         [
                             util.strict_parse_date('Mon Mar 26, 2018'),
                         ])

    @freezegun.freeze_time(util.strict_parse_date('Sat Mar 24, 2018'))
    def test_tomorrow_on_saturday_returns_monday_in_workdays_only_mode(self):
        """Tests tomorrow on saturday is monday for workday-only mode."""
        self.assertEqual(util.parse_date_range('tomorrow', workdays_only=True),
                         [
                             util.strict_parse_date('Mon Mar 26, 2018'),
                         ])
示例#9
0
 def test_today(self):
     """Tests that today returns a single-element list for today's date."""
     self.assertEqual(util.parse_date_range('today'), [
         util.strict_parse_date('Mar 24, 2018'),
     ])
示例#10
0
 def test_wrong_format(self):
     """"Tests that date in wrong format raises an error."""
     with self.assertRaisesRegex(ValueError, r'not a valid format'):
         util.strict_parse_date('2018-03-24')
示例#11
0
 def test_without_weekday(self):
     """Tests that date without weekday can still be parsed."""
     self.assertEqual(util.strict_parse_date('Mar 23, 2018'),
                      dt.date(2018, 3, 23))
示例#12
0
 def test_wrong_weekday(self):
     """Tests that date with wrong weekday raises an error."""
     with self.assertRaisesRegex(
             ValueError, r"does not have the same weekday .* "
             r"\(expected: 'Sat', actual: 'Fri'\)"):
         util.strict_parse_date('Sat Mar 23, 2018')
示例#13
0
 def test_tomorrow_on_saturday_returns_monday_in_workdays_only_mode(self):
     """Tests tomorrow on saturday is monday for workday-only mode."""
     self.assertEqual(util.parse_date_range('tomorrow', workdays_only=True),
                      [
                          util.strict_parse_date('Mon Mar 26, 2018'),
                      ])
示例#14
0
 def test_correct_weekday(self):
     """Tests that date with correct weekday returns normally."""
     self.assertEqual(util.strict_parse_date('Fri Mar 23, 2018'),
                      dt.date(2018, 3, 23))