Demonstrating Freezegun#s freeze_time and freeze_datetime Usage

  • Share this:

Code introduction


This function demonstrates the usage of `freeze_time` and `freeze_datetime` from the Freezegun library, which are used to freeze time for testing the behavior of code at different time points.


Technology Stack : Freezegun, datetime

Code Type : Function

Code Difficulty : Intermediate


                
                    
import random
from freezegun import freeze_time, freeze_datetime
import datetime

def random_freeze_time_function():
    # Function to demonstrate random usage of Freezegun library
    def function_with_freeze_time(arg1, arg2):
        with freeze_time(arg1) as frozen_time:
            current_time = datetime.datetime.now()
            print(f"Frozen time: {current_time}")
        
        with freeze_datetime(arg2) as frozen_datetime:
            current_datetime = datetime.datetime.now()
            print(f"Frozen datetime: {current_datetime}")

    # Randomly select a function from the above
    selected_function = random.choice([function_with_freeze_time])
    return selected_function

# Example usage
if __name__ == "__main__":
    random_function = random_freeze_time_function()
    random_function("2023-01-01", "2023-01-01 12:00:00")