Commit 01daa105 authored by Netzdenunziant's avatar Netzdenunziant

Adapt code for faster testing

parent 2c01dbc8
...@@ -239,11 +239,12 @@ class TwitterSession: ...@@ -239,11 +239,12 @@ class TwitterSession:
# rate limit reset # rate limit reset
if last_remaining < self.remaining and self.overshot > 0 and self.username is not None: if last_remaining < self.remaining and self.overshot > 0 and self.username is not None:
log('[rate-limit] Reset detected for ' + self.username + '. Saving overshoot count...') log('[rate-limit] Reset detected for ' + self.username + '. Saving overshoot count...')
db.write_rate_limit({ 'screen_name': self.username, 'overshot': self.overshot }) if db is not None:
db.write_rate_limit({ 'screen_name': self.username, 'overshot': self.overshot })
self.overshot = 0 self.overshot = 0
# count the requests that failed because of rate limiting # count the requests that failed because of rate limiting
if self.remaining is 0: if self.remaining == 0:
log('[rate-limit] Limit hit by ' + str(self.username) + '.') log('[rate-limit] Limit hit by ' + str(self.username) + '.')
self.overshot += 1 self.overshot += 1
...@@ -459,7 +460,8 @@ class TwitterSession: ...@@ -459,7 +460,8 @@ class TwitterSession:
result["tests"]["more_replies"] = { "error": "EISGHOSTED"} result["tests"]["more_replies"] = { "error": "EISGHOSTED"}
debug('[' + profile['screen_name'] + '] Writing result to DB') debug('[' + profile['screen_name'] + '] Writing result to DB')
db.write_result(result) if db is not None:
db.write_result(result)
return result return result
...@@ -527,6 +529,8 @@ async def api(request): ...@@ -527,6 +529,8 @@ async def api(request):
return web.json_response(result) return web.json_response(result)
async def login_accounts(accounts, cookie_dir=None): async def login_accounts(accounts, cookie_dir=None):
if accounts is None or len(accounts) == 0:
return
if cookie_dir is not None and not os.path.isdir(cookie_dir): if cookie_dir is not None and not os.path.isdir(cookie_dir):
os.mkdir(cookie_dir, 0o700) os.mkdir(cookie_dir, 0o700)
coroutines = [] coroutines = []
...@@ -556,7 +560,7 @@ parser.add_argument('--daemon', action='store_true', help='run in background') ...@@ -556,7 +560,7 @@ parser.add_argument('--daemon', action='store_true', help='run in background')
parser.add_argument('--debug', type=str, default=None, help='debug log file') parser.add_argument('--debug', type=str, default=None, help='debug log file')
parser.add_argument('--port', type=int, default=8080, help='port which to listen on') parser.add_argument('--port', type=int, default=8080, help='port which to listen on')
parser.add_argument('--host', type=str, default='127.0.0.1', help='hostname/ip which to listen on') parser.add_argument('--host', type=str, default='127.0.0.1', help='hostname/ip which to listen on')
parser.add_argument('--mongo-host', type=str, default='localhost', help='hostname or IP of mongoDB service to connect to') parser.add_argument('--mongo-host', type=str, default=None, help='hostname or IP of mongoDB service to connect to')
parser.add_argument('--mongo-port', type=int, default=27017, help='port of mongoDB service to connect to') parser.add_argument('--mongo-port', type=int, default=27017, help='port of mongoDB service to connect to')
parser.add_argument('--mongo-db', type=str, default='tester', help='name of mongo database to use') parser.add_argument('--mongo-db', type=str, default='tester', help='name of mongo database to use')
parser.add_argument('--twitter-auth-key', type=str, default=TWITTER_AUTH_KEY, help='auth key for twitter guest session') parser.add_argument('--twitter-auth-key', type=str, default=TWITTER_AUTH_KEY, help='auth key for twitter guest session')
...@@ -570,10 +574,16 @@ if (args.cors_allow is None): ...@@ -570,10 +574,16 @@ if (args.cors_allow is None):
else: else:
debug('[CORS] Allowing requests from: ' + args.cors_allow) debug('[CORS] Allowing requests from: ' + args.cors_allow)
ensure_dir(args.cookie_dir)
with open(args.account_file, "r") as f: accounts = []
accounts = json.loads(f.read()) if args.account_file is None:
debug('No account file specified.')
elif not os.path.exists(args.account_file):
debug('Account file does not exist')
else:
ensure_dir(args.cookie_dir)
with open(args.account_file, "r") as f:
accounts = json.loads(f.read())
if args.log is not None: if args.log is not None:
print("Logging test results to %s" % args.log) print("Logging test results to %s" % args.log)
...@@ -589,7 +599,9 @@ if args.debug is not None: ...@@ -589,7 +599,9 @@ if args.debug is not None:
def run(): def run():
global db global db
db = connect(host=args.mongo_host, port=args.mongo_port) db = None
if args.mongo_host is not None:
db = connect(host=args.mongo_host, port=args.mongo_port)
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
loop.run_until_complete(login_accounts(accounts, args.cookie_dir)) loop.run_until_complete(login_accounts(accounts, args.cookie_dir))
loop.run_until_complete(login_guests()) loop.run_until_complete(login_guests())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment