Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def assertme(m, monsterassert=True):
- with open('asserted.txt', 'w') as f:
- todo = []
- def inner(m=None, override_name=''):
- keys = sorted([k for k in m.__dict__.keys() if not k.startswith('_')])
- tags = ['genres', 'roles', 'writers', 'directors', 'writers']
- l_type_to_inspect = ['videoStreams', 'part', 'subtitleStreams',
- 'media', 'audioStreams', 'parts', 'streams', 'video']
- for k in keys:
- try:
- v = m.__dict__.get(k)
- ass_start = override_name or 'ep'
- if k.startswith('_'):
- continue
- # check new classes
- print repr(v), type(v)
- #if inspect.isclass(v) or isinstance(v, type(v)) and not isinstance(v, datetime.datetime):
- # print 'is class'
- # kek_name = '%s' % (k[:3])
- # #f.write('# Assign %s %s.%s\n' % (ass_start, k))
- # #f.write('%s = %s.%s[%s]\n' % (kek_name, ass_start, k, i))
- # func = partial(inner, m=v, override_name=kek_name)
- # todo.append(func)
- #continue
- if isinstance(v, (str, unicode)):
- v = "'%s'" % v.encode('utf-8')
- elif isinstance(v, datetime.datetime):
- v = "'%s'" % str(v.date())
- k = "str(%s.%s.date())" % (ass_start, k)
- elif isinstance(v, list) and k in tags:
- v = [i.tag for i in v]
- k = '[i.tag for i in %s.%s]' % (ass_start, k)
- elif isinstance(v, list) and k in l_type_to_inspect:
- if monsterassert:
- for i, nn in enumerate(v):
- kek_name = '%s%s' % (k[:3], i)
- f.write('# Assign %s %s.%s\n' % (i, ass_start, k))
- f.write('%s = %s.%s[%s]\n' % (kek_name, ass_start, k, i))
- func = partial(inner, m=v[i], override_name=kek_name)
- todo.append(func)
- #raise Breakloop
- continue
- if k == 'server':
- v = "'%s'" % v.baseurl
- k = 'server.baseurl'
- if k == 'summary':
- v = 'u"%s"' % v
- check = '=='
- if isinstance(v, _NA):
- try:
- k = "str(%s.%s)" % (ass_start, k)
- v = "'__NA__'"
- except Exception as e:
- print e
- if v is None or v is True or v is False:
- check = 'is'
- if isinstance(v, (str, unicode)) and v.startswith('<'):
- continue
- if ass_start in k:
- f.write('assert %s %s %s\n' % (k, check, v))
- else:
- f.write('assert %s.%s %s %s\n' % (ass_start, k, check, v))
- except Breakloop:
- continue
- inner(m)
- print len(todo)
- for z in todo:
- z()
- print('done')
- assertme(m, monsterassert=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement