old_contents: import pytest
  
  pytest.importorskip("datetime")
  
  def test_load_module():
      __import__("modules.core.datetime")
  
  
new_contents: import pytest
  from unittest import mock, TestCase
  
  import datetime
  from freezegun import freeze_time
  
  import core.config
  import core.input
  import core.widget
  import modules.core.datetime
  
  pytest.importorskip("datetime")
  
  def build_module(args = []):
      config = core.config.Config(args)
      return modules.core.datetime.Module(config=config, theme=None)
  
  def build_widget():
      return core.widget.Widget()
  
  class DatetimeTest(TestCase):
      def setup_class(self):
          locale_patcher = mock.patch('locale.getdefaultlocale')
          locale_mock = locale_patcher.start()
          locale_mock.return_value = ('en-US', 'UTF-8')
  
          self.widget = build_widget()
  
      def test_load_module(self):
          __import__("modules.core.datetime")
  
      @freeze_time('2020-10-15')
      def test_default_format(self):
          module = build_module()
          assert module.full_text(self.widget) == '10/15/2020 12:00:00 AM'
  
      @freeze_time('2020-10-20')
      def test_custom_format(self):
          module = build_module(['-p', 'datetime.format=%Y.%m.%d'])
          assert module.full_text(self.widget) == '2020.10.20'
  
      @freeze_time('2020-01-10 10:20:30')
      @mock.patch('locale.getdefaultlocale')
      def test_invalid_locale(self, locale_mock):
          locale_mock.return_value = ('in-IN', 'UTF-0')
  
          module = build_module()
          assert module.full_text(self.widget) == '01/10/2020 10:20:30 AM'
  
      @mock.patch('core.input.register')
      def test_register_left_mouse_action(self, input_register_mock):
          module = build_module()
  
          input_register_mock.assert_called_with(
              module,
              button=core.input.LEFT_MOUSE,
              cmd='calendar'
          )
  
  
subject: Add datetime module tests