Skip to content
This repository has been archived by the owner on Aug 1, 2021. It is now read-only.

Commit

Permalink
[tests] cleanup / etc
Browse files Browse the repository at this point in the history
  • Loading branch information
b1naryth1ef committed Jun 24, 2017
1 parent 83e5f93 commit b3cd55e
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 30 deletions.
2 changes: 2 additions & 0 deletions examples/basic_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,12 @@ def on_test(self, event, args):
return event.msg.reply(event.parser.format_help())
event.msg.reply(args.asdf)

"""
@Plugin.route('/test')
def on_test_route(self):
# Disco has built-in support for Flask (if installed and enabled) which
# allows plugins to create HTTP routes.
from flask import request
print dict(request.headers)
return 'Hi!'
"""
9 changes: 1 addition & 8 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@
from disco import VERSION


def run_tests():
import unittest
test_loader = unittest.TestLoader()
test_suite = test_loader.discover('tests', pattern='test_*.py')
return test_suite


with open('requirements.txt') as f:
requirements = f.readlines()

Expand Down Expand Up @@ -38,7 +31,7 @@ def run_tests():
include_package_data=True,
install_requires=requirements,
extras_require=extras_require,
test_suite='setup.run_tests',
test_suite='tests',
classifiers=[
'Development Status :: 4 - Beta',
'License :: OSI Approved :: MIT License',
Expand Down
Empty file added tests/__init__.py
Empty file.
4 changes: 2 additions & 2 deletions tests/test_reason.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from unittest import TestCase
from utils import TestAPIClient


class TestReason(TestCase):
def test_set_unicode_reason(self):
from tests.utils import TestAPIClient
api = TestAPIClient()
api.guilds_channels_modify(1, 2, 3, reason=u'yo \U0001F4BF test')

_, kwargs = api.http.calls[0]
self.assertEquals(kwargs['headers']['X-Audit-Log-Reason'], 'yo%20%F0%9F%92%BF%20test')
self.assertEqual(kwargs['headers']['X-Audit-Log-Reason'], 'yo%20%F0%9F%92%BF%20test')
43 changes: 23 additions & 20 deletions tests/test_types.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
from unittest import TestCase
from __future__ import print_function

import six

from unittest import TestCase
from holster.enum import Enum
from disco.types.base import Model, Field, enum, snowflake, ConversionError

Expand All @@ -24,16 +27,16 @@ class _C(Model):
class TestModel(TestCase):
def test_model_simple_loading(self):
inst = _A(dict(a=1, b=1.1, c='test'))
self.assertEquals(inst.a, 1)
self.assertEquals(inst.b, 1.1)
self.assertEquals(inst.c, 'test')
self.assertEqual(inst.a, 1)
self.assertEqual(inst.b, 1.1)
self.assertEqual(inst.c, 'test')

def test_model_load_into(self):
inst = _A()
_A.load_into(inst, dict(a=1, b=1.1, c='test'))
self.assertEquals(inst.a, 1)
self.assertEquals(inst.b, 1.1)
self.assertEquals(inst.c, 'test')
self.assertEqual(inst.a, 1)
self.assertEqual(inst.b, 1.1)
self.assertEqual(inst.c, 'test')

def test_model_loading_consume(self):
obj = {
Expand All @@ -55,10 +58,10 @@ def test_model_loading_consume(self):
inst = _C()
inst.load(obj, consume=True)

self.assertEquals(inst.a.a, 1)
self.assertEquals(inst.b.c, '1')
self.assertEqual(inst.a.a, 1)
self.assertEqual(inst.b.c, '1')

self.assertEquals(obj, {'a': {'d': 'wow'}, 'b': {'z': 'wtf'}, 'g': 'lmao'})
self.assertEqual(obj, {'a': {'d': 'wow'}, 'b': {'z': 'wtf'}, 'g': 'lmao'})

def test_model_field_enum(self):
en = Enum(
Expand All @@ -70,18 +73,18 @@ def test_model_field_enum(self):
class _M(Model):
field = Field(enum(en))

self.assertEquals(_M(field=en.A).field, en.A)
self.assertEquals(_M(field=2).field, en.B)
self.assertEquals(_M(field='3').field, None)
self.assertEquals(_M(field='a').field, en.A)
self.assertEquals(_M(field='A').field, en.A)
self.assertEqual(_M(field=en.A).field, en.A)
self.assertEqual(_M(field=2).field, en.B)
self.assertEqual(_M(field='3').field, None)
self.assertEqual(_M(field='a').field, en.A)
self.assertEqual(_M(field='A').field, en.A)

def test_model_field_snowflake(self):
class _M(Model):
field = Field(snowflake)

self.assertEquals(_M(field=327936274851954688).field, 327936274851954688)
self.assertEquals(_M(field='327936274851954688').field, 327936274851954688)
self.assertEqual(_M(field=327936274851954688).field, 327936274851954688)
self.assertEqual(_M(field='327936274851954688').field, 327936274851954688)

with self.assertRaises(ConversionError):
_M(field='asdf')
Expand All @@ -91,11 +94,11 @@ class Object(object):
def __init__(self, v):
self.v = v

def __unicode__(self):
def __str__(self):
return self.v

class _M(Model):
field = Field(Object, cast=unicode)
field = Field(Object, cast=six.text_type)

inst = _M(field=u'wowza')
self.assertEquals(inst.to_dict(), {'field': u'wowza'})
self.assertEqual(inst.to_dict(), {'field': u'wowza'})
23 changes: 23 additions & 0 deletions tests/utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import time
import contextlib
from disco.api.client import APIClient


Expand All @@ -13,3 +15,24 @@ class TestAPIClient(APIClient):
def __init__(self):
self.client = None
self.http = CallContainer()


def bench(times, func):
main_start = time.time()

worst = None
best = None

for _ in range(times):
start = time.time()
func()
dur = time.time() - start

if not worst or dur > worst:
worst = dur

if not best or dur < best:
best = dur

main_dur = time.time() - main_start
return main_dur, worst, best

0 comments on commit b3cd55e

Please sign in to comment.