Esempio n. 1
0
    def test_extract_time_return_value_for_no_fallback_minutes(self):
        """
        Test the return for numerical expressions without fallback minutes.

        Should return None and None.
        """
        test_args = ("10", "hello")
        test_expression = time.extract_time(test_args, fallback_minutes=False)

        self.assertEqual(test_expression, (None, None))
Esempio n. 2
0
    def test_extract_time_returns_none_none_with_invalid_time_expression(self):
        """
        Test the return value for an invalid time expression.

        Should return None and None.
        """
        test_args = ("hello", "minutes")
        test_expression = time.extract_time(test_args)

        self.assertEqual(test_expression, (None, None))
Esempio n. 3
0
    def test_extract_time_return_value_for_1_hour_singular(self):
        """
        Test the return value for ("1", "hour").

        Should return a one hour timedelta and a datetime object.
        """
        test_args = ("1", "hour")
        (first, second) = time.extract_time(test_args)
        should_be = datetime.timedelta(hours=1)

        self.assertEqual(first, should_be)
        self.assertTrue(isinstance(second, datetime.datetime))
Esempio n. 4
0
    def test_extract_time_return_value_for_2_minutes_plural(self):
        """
        Test the return value for ("2", "minutes").

        Should return a two minute timedelta and a datetime object.
        """
        test_args = ("2", "minutes")
        (first, second) = time.extract_time(test_args)
        should_be = datetime.timedelta(minutes=2)

        self.assertEqual(first, should_be)
        self.assertTrue(isinstance(second, datetime.datetime))
Esempio n. 5
0
    def test_extract_time_return_value_for_negative_numbers(self):
        """
        Test the return value for negative numbers.

        Should return a -730 day timedelta and a datetime object.
        """
        test_args = ("-2", "years")
        (first, second) = time.extract_time(test_args)
        should_be = datetime.timedelta(days=-730)

        self.assertEqual(first, should_be)
        self.assertTrue(isinstance(second, datetime.datetime))
Esempio n. 6
0
    def test_extract_time_return_value_for_absurdly_high_numbers(self):
        """
        Test the return value for numbers so high the datetime overflows.

        Should return a timedelta and datetime.datetime.max.
        """
        test_args = ("9999999999999999", "years")
        (first, second) = time.extract_time(test_args)
        should_be = datetime.datetime.max

        self.assertTrue(isinstance(first, datetime.timedelta))
        self.assertEqual(second, should_be)
Esempio n. 7
0
    def test_extract_time_return_value_for_fallback_minutes(self):
        """
        Test the return for numerical expressions without fallback minutes.

        Should return None and None.
        """
        test_args = ("10", "hello")
        (first, second) = time.extract_time(test_args, fallback_minutes=True)
        should_be = datetime.timedelta(minutes=10)

        self.assertEqual(first, should_be)
        self.assertTrue(isinstance(second, datetime.datetime))
Esempio n. 8
0
    def test_extract_time_return_value_for_1_month_singular(self):
        """
        Test the return value for ("1", "month").

        Should return a 30 day timedelta and a datetime object.
        """
        test_args = ("1", "month")
        (first, second) = time.extract_time(test_args)
        should_be = datetime.timedelta(days=30)

        self.assertEqual(first, should_be)
        self.assertTrue(isinstance(second, datetime.datetime))
Esempio n. 9
0
    def test_extract_time_return_value_for_multiple_units(self):
        """
        Test the return value for a compound time statement.

        Input is ("3", "days", "2", "seconds", "1", "year").
        Should return a 368 day + 2 second timedelta and a datetime object.
        """
        test_args = ("3", "days", "2", "seconds", "1", "year")
        (first, second) = time.extract_time(test_args)
        should_be = datetime.timedelta(days=368, seconds=2)

        self.assertEqual(first, should_be)
        self.assertTrue(isinstance(second, datetime.datetime))
Esempio n. 10
0
def test_extract_time_return_value_for_1_minute_singular():
    """
    Test the return value for ("1", "minute").

    Should return a one minute timedelta and a datetime object.
    """
    test_args = ("1", "minute")
    (first, second) = time.extract_time(test_args)
    should_be = datetime.timedelta(minutes=1)

    test = first == should_be
    assert test

    test = isinstance(second, datetime.datetime)
    assert test
Esempio n. 11
0
def test_extract_time_return_value_for_2_seconds_plural():
    """
    Test the return value for ("2", "seconds").

    Should return a two second timedelta and a datetime object.
    """
    test_args = ("2", "seconds")
    (first, second) = time.extract_time(test_args)
    should_be = datetime.timedelta(seconds=2)

    test = first == should_be
    assert test

    test = isinstance(second, datetime.datetime)
    assert test
Esempio n. 12
0
def test_extract_time_return_value_for_absurdly_high_numbers():
    """
    Test the return value for numbers so high the datetime overflows.

    Should return a timedelta and datetime.datetime.max.
    """
    test_args = ("9999999999999999", "years")
    (first, second) = time.extract_time(test_args)
    should_be = datetime.datetime.max

    test = second == should_be
    assert test

    test = isinstance(first, datetime.timedelta)
    assert test
Esempio n. 13
0
def test_extract_time_return_value_for_1_year_singular():
    """
    Test the return value for ("1", "year").

    Should return a 365 day timedelta and a datetime object.
    """
    test_args = ("1", "year")
    (first, second) = time.extract_time(test_args)
    should_be = datetime.timedelta(days=365)

    test = first == should_be
    assert test

    test = isinstance(second, datetime.datetime)
    assert test