def test_schedule_with_time(monkeypatch, tmpdir): home = tmpdir.mkdir("current_dir") # temporary directory for testing launch = tmpdir.mkdir("TestAgents") # temporary directory for testing # monkeypatch directories and suppress the plist loading process # NOTE: it may be possible to test the plist loading process # but I can't work out how to do it universally / consistently def mock_current_dir(): return str(home) def mock_home_dir_expansion(arg): return str(launch) def suppress_subprocess(args, stdout=None, stderr=None, shell=None): return None monkeypatch.setattr(os, "getcwd", mock_current_dir) monkeypatch.setattr(os.path, "expanduser", mock_home_dir_expansion) monkeypatch.setattr(subprocess, "run", suppress_subprocess) # now we run the function we're testing ephemetoot.schedule(Namespace(schedule=".", time=["10", "30"])) # assert the plist file was created plist_file = os.path.join(launch, "ephemetoot.scheduler.plist") assert os.path.lexists(plist_file) # assert that correct values were modified in the file f = open(plist_file, "r") plist = f.readlines() assert plist[21] == " <integer>10</integer>\n" assert plist[23] == " <integer>30</integer>\n"
def main(): """ Call ephemetoot.check_toots() on each user in the config file, with options set via flags from command line. """ try: if options.init: func.init() elif options.version: func.version(vnum) elif options.schedule: func.schedule(options) else: if not options.quiet: print("") print("============= EPHEMETOOT v" + vnum + " ================") print("Running at " + str( datetime.now(timezone.utc).strftime( "%a %d %b %Y %H:%M:%S %z"))) print("================================================") print("") if options.test: print("This is a test run...\n") with open(config_file) as config: for accounts in yaml.safe_load_all(config): for user in accounts: func.check_toots(user, options) except FileNotFoundError as err: if err.filename == config_file: print("🕵️ Missing config file") print("Run \033[92mephemetoot --init\033[0m to create a new one\n") else: print( "\n🤷♂️ The archive directory in your config file does not exist" ) print( "Create the directory or correct your config before trying again\n" )