Skip to content

Commit 844e8a1

Browse files
committed
Reorganize test folder
1 parent 52a79aa commit 844e8a1

10 files changed

Lines changed: 423 additions & 0 deletions

mqueue/tests/test_admin.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from django.test import TestCase
2+
from django.contrib import admin
3+
from .base import MqueueBaseTest
4+
from mqueue.models import MEvent
5+
from mqueue.admin import link_to_object, link_to_object_admin, MEventAdmin
6+
7+
8+
class MqueueTestAdmin(MqueueBaseTest):
9+
10+
def test_admin(self):
11+
instance, _ = MEvent.objects.get_or_create(name="Event name",
12+
url="http://url",
13+
admin_url="http://admin_url")
14+
res = link_to_object(instance)
15+
link = '<a href="http://url" target="_blank">http://url</a>'
16+
self.assertEqual(link, res)
17+
res = link_to_object_admin(instance)
18+
link = '<a href="http://admin_url" target="_blank">http://admin_url</a>'
19+
self.assertEqual(link, res)
20+
request = self.factory.get('/')
21+
22+
class TestAdminSite(admin.AdminSite):
23+
pass
24+
25+
adm = MEventAdmin(MEvent, TestAdminSite)
26+
res = adm.get_readonly_fields(request)
27+
self.assertEqual(res, ('notes', 'request'))

mqueue/tests/test_apps.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from django.test import TestCase
2+
from .base import MqueueBaseTest
3+
from django.apps import apps
4+
5+
6+
class MqueueTestApps(MqueueBaseTest):
7+
8+
def test_apps(self):
9+
apps.get_app_config('mqueue')
10+
11+
def test_apps_import_error(self):
12+
req = (('wrong.model.path', ["c", "d", "u"]),)
13+
with self.settings(MQUEUE_AUTOREGISTER=req):
14+
apps.get_app_config('mqueue')
15+
self.assertRaises(ImportError)

mqueue/tests/test_create.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
from django.test import TestCase
2+
from .base import MqueueBaseTest
3+
from django.contrib.contenttypes.models import ContentType
4+
from django.contrib.auth.models import User
5+
from mqueue.models import MEvent
6+
7+
8+
class MqueueTestCreate(MqueueBaseTest):
9+
10+
def create_mevent(self, name="M event", url='/', obj_pk=1, notes='Notes'):
11+
self._content_type = ContentType.objects.get_for_model(User)
12+
return MEvent.objects.create(name=name, url=url, obj_pk=obj_pk, notes=notes,
13+
model=User, content_type=self._content_type)
14+
15+
def test_mevent_creation(self):
16+
mevent = self.create_mevent()
17+
self.assertTrue(isinstance(mevent, MEvent))
18+
self.assertEqual(mevent.content_type, self._content_type)
19+
self.assertEqual(mevent.url, "/")
20+
self.assertEqual(mevent.name, "M event")
21+
self.assertEqual(mevent.obj_pk, 1)
22+
self.assertEqual(mevent.notes, "Notes")
23+
self.assertEqual(mevent.__unicode__(), mevent.name +
24+
' - ' + str(mevent.date_posted))
25+
26+
def test_create_mevent_empty(self):
27+
self.assertRaises(ValueError, MEvent.objects.create, 'name')
28+
29+
def test_mevent_creation_with_user(self):
30+
self._content_type = ContentType.objects.get_for_model(User)
31+
self.reset()
32+
user = self.user
33+
mevent = MEvent.objects.create(
34+
name='M Event', instance=user, user=user)
35+
self.assertTrue(isinstance(mevent, MEvent))
36+
self.assertEqual(mevent.content_type, self._content_type)
37+
self.assertEqual(mevent.obj_pk, 1)
38+
self.assertEqual(mevent.user, user)
39+
self.reset()
40+
41+
def test_event_creation_more(self):
42+
request = self.factory.get('/')
43+
mevent = MEvent.objects.create(
44+
name='123',
45+
scope="superuser",
46+
bucket="sup",
47+
request=request,
48+
data={"k": "v"},
49+
admin_url="http://admin",
50+
)
51+
self.assertTrue(isinstance(mevent, MEvent))
52+
self.assertEqual(mevent.name, "123")
53+
self.assertEqual(mevent.scope, "superuser")
54+
self.assertEqual(mevent.bucket, "sup")
55+
self.assertEqual(mevent.admin_url, "http://admin")
56+
formated_request = ""
57+
for key in request.META.keys():
58+
formated_request += str(key) + ' : ' + \
59+
str(request.META[key]) + '\n'
60+
self.assertEqual(mevent.request, formated_request)
61+
self.assertEqual(mevent.data, {"k": "v"})

mqueue/tests/test_graphql_api.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from django.test import TestCase
2+
from .base import MqueueBaseTest
3+
from graphene.test import Client
4+
from mqueue.schema import schema
5+
from mqueue.models import MEvent
6+
7+
8+
client = Client(schema)
9+
10+
11+
class MqueueTestGraphqlApi(MqueueBaseTest):
12+
13+
"""
14+
# TOFIX
15+
def test_graphql_query(self):
16+
self.reset()
17+
MEvent.objects.create(name="Test public event", scope="public")
18+
query = '''query publicEvents(first:10) {
19+
edges {
20+
node {
21+
name
22+
event_class
23+
}
24+
}
25+
}
26+
'''
27+
res = [{"name": "Test public event"}]
28+
self.assertEqual(client.execute(query), res)
29+
"""

mqueue/tests/test_hooks.py

Whitespace-only changes.

mqueue/tests/test_logging.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import logging
2+
from unittest.mock import patch
3+
from django.test import TestCase
4+
from .base import MqueueBaseTest
5+
from mqueue.models import MEvent
6+
7+
8+
class MqueueTestLogging(MqueueBaseTest):
9+
10+
"""
11+
12+
# TOFIX
13+
14+
@patch('mqueue.logging.DEV_LOGGING')
15+
def test_mqueue_logging(self, mock_logging):
16+
from mqueue.logging import DEV_LOGGING, LOGGING_WARNING
17+
logger = logging.getLogger('mqueue.logging.DEV_LOGGING')
18+
logger.debug('debug logged')
19+
logger.info('info logged')
20+
logger.warning('warning logged')
21+
logger.critical('critical logged')
22+
self.assertTrue(mock_logging.warn.called)"""

mqueue/tests/test_managers.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
from django.test import TestCase
2+
from .base import MqueueBaseTest
3+
from django.contrib.auth.models import User
4+
from mqueue.models import MEvent
5+
6+
7+
class MqueueTestManagers(MqueueBaseTest):
8+
9+
def test_managers(self):
10+
self.reset()
11+
user = self.user
12+
mevent1 = MEvent.objects.create(name="event1", model=User)
13+
mevent2 = MEvent.objects.create(name="event2", instance=user)
14+
self.assertEqual(
15+
list(
16+
MEvent.objects.events_for_model(User)), [
17+
mevent2, mevent1])
18+
self.assertEqual(MEvent.objects.count_for_model(User), 2)
19+
self.assertEqual(
20+
list(
21+
MEvent.objects.events_for_object(user)),
22+
[mevent2])
23+
return
24+
25+
def test_managers_with_event_class(self):
26+
self.reset()
27+
user = self.user
28+
mevent1 = MEvent.objects.create(
29+
name="event1", model=User, event_class="class1")
30+
mevent2 = MEvent.objects.create(
31+
name="event2", instance=user, event_class="class2")
32+
self.assertEqual(
33+
list(
34+
MEvent.objects.events_for_model(
35+
User,
36+
event_classes=["class1"])),
37+
[mevent1])
38+
self.assertEqual(
39+
MEvent.objects.count_for_model(
40+
User, event_classes=["class2"]), 1)
41+
self.assertEqual(
42+
list(
43+
MEvent.objects.events_for_object(user)),
44+
[mevent2])
45+
return

mqueue/tests/test_signals.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from unittest.mock import patch
2+
from django.test import TestCase
3+
from .base import MqueueBaseTest
4+
from django.contrib.auth.models import User
5+
from mqueue.models import MEvent
6+
from mqueue.tracking import mqueue_tracker
7+
from mqueue.signals import mmessage_create
8+
9+
10+
class MqueueTestSignals(MqueueBaseTest):
11+
12+
def test_register(self):
13+
mqueue_tracker.register(User, ["c"])
14+
mqueue_tracker.register(User, ["u"])
15+
mqueue_tracker.register(User, ["d"])
16+
17+
"""
18+
TOFIX
19+
20+
@patch('mqueue.signals.mmessage_create')
21+
def test_signal_create(self, mock):
22+
mqueue_tracker.register(User, ["c", "u", "d"])
23+
User.objects.create_user(
24+
'myuser2', 'myemail2@test.com', 'super_password')
25+
self.assertTrue(mock.called)
26+
self.assertEqual(mock.call_count, 1)
27+
28+
"""

mqueue/tests/test_utils.py

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
from django.test import TestCase
2+
from .base import MqueueBaseTest
3+
from mqueue.models import MEvent
4+
from mqueue.utils import get_event_class_str, get_object_name, get_url, format_event_class
5+
from mqueue.conf import EVENT_CLASSES, EVENT_ICONS_HTML
6+
7+
8+
class MqueueTestUtils(MqueueBaseTest):
9+
10+
def test_utils_get_event_class_str(self):
11+
event_class = "Obj created"
12+
self.assertEqual(get_event_class_str(event_class), "Object created")
13+
event_class = "Obj edited"
14+
self.assertEqual(get_event_class_str(event_class), "Object edited")
15+
event_class = "Obj deleted"
16+
self.assertEqual(get_event_class_str(event_class), "Object deleted")
17+
event_class = None
18+
self.assertEqual(get_event_class_str(event_class), "Default")
19+
20+
def test_utils_get_object_name(self):
21+
self.reset()
22+
# test unicode method
23+
instance, _ = MEvent.objects.get_or_create(name="Event name")
24+
user = self.user
25+
object_name = get_object_name(instance, user)
26+
res = instance.__class__.__name__ + ' - ' + \
27+
str(instance.date_posted) + ' (' + user.username + ')'
28+
self.assertEqual(object_name, res)
29+
# test name
30+
MEvent.objects.create(name='123')
31+
instance = MEvent.objects.get(name='123')
32+
res = instance.__class__.__name__ + ' - ' + \
33+
str(instance.date_posted) + ' (' + user.username + ')'
34+
object_name = get_object_name(instance, user)
35+
self.assertEqual(object_name, res)
36+
self.reset()
37+
38+
#app = MqueueConfig("mqueue", mqueue)
39+
# app.ready()
40+
41+
"""def test_utils_get_url(self):
42+
# test from absolute url
43+
instance, created = MEvent.objects.get_or_create(name='123')
44+
url = get_url(instance)
45+
self.assertEqual(url, "http://absoluteurl")
46+
# test from custom method
47+
instance, created = MEvent.objects.get_or_create(title='123')
48+
url = get_url(instance)
49+
self.assertEqual(url, "http://eventurl")"""
50+
51+
def test_utils_format_event_class(self):
52+
# test with obj
53+
instance, created = MEvent.objects.get_or_create(
54+
name="Event name", event_class="Default")
55+
event_class_formated = format_event_class(instance)
56+
icon = EVENT_ICONS_HTML[instance.event_class] + '&nbsp;'
57+
html = '<span class="' + \
58+
EVENT_CLASSES[instance.event_class] + '">' + \
59+
icon + instance.event_class + '</span>'
60+
self.assertEqual(event_class_formated, html)
61+
# test with event_class
62+
event_class = "Default"
63+
instance, created = MEvent.objects.get_or_create(
64+
name="Event name", event_class=event_class)
65+
event_class_formated = format_event_class(event_class=event_class)
66+
icon = EVENT_ICONS_HTML[event_class] + '&nbsp;'
67+
html = '<span class="' + \
68+
EVENT_CLASSES[event_class] + '">' + icon + event_class + '</span>'
69+
self.assertEqual(event_class_formated, html)
70+
event_class = "Myobj created"
71+
instance, created = MEvent.objects.get_or_create(
72+
name="Event name", event_class=event_class)
73+
event_class_formated = format_event_class(event_class=event_class)
74+
res_event_class = 'Object created'
75+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
76+
html = '<span class="' + \
77+
EVENT_CLASSES[res_event_class] + '">' + \
78+
icon + event_class + '</span>'
79+
self.assertEqual(event_class_formated, html)
80+
event_class = "Myobj edited"
81+
instance, created = MEvent.objects.get_or_create(
82+
name="Event name", event_class=event_class)
83+
event_class_formated = format_event_class(event_class=event_class)
84+
res_event_class = 'Object edited'
85+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
86+
html = '<span class="' + \
87+
EVENT_CLASSES[res_event_class] + '">' + \
88+
icon + event_class + '</span>'
89+
self.assertEqual(event_class_formated, html)
90+
event_class = "Myobj deleted"
91+
instance, created = MEvent.objects.get_or_create(
92+
name="Event name", event_class=event_class)
93+
event_class_formated = format_event_class(event_class=event_class)
94+
res_event_class = 'Object deleted'
95+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
96+
html = '<span class="' + \
97+
EVENT_CLASSES[res_event_class] + '">' + \
98+
icon + event_class + '</span>'
99+
self.assertEqual(event_class_formated, html)
100+
event_class = "Random event class"
101+
instance, created = MEvent.objects.get_or_create(
102+
name="Event name", event_class=event_class)
103+
event_class_formated = format_event_class(event_class=event_class)
104+
res_event_class = 'Default'
105+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
106+
html = '<span class="' + \
107+
EVENT_CLASSES[res_event_class] + '">' + \
108+
icon + event_class + '</span>'
109+
self.assertEqual(event_class_formated, html)
110+
event_class = "Some error event"
111+
instance, created = MEvent.objects.get_or_create(
112+
name="Event name", event_class=event_class)
113+
event_class_formated = format_event_class(event_class=event_class)
114+
res_event_class = 'Error'
115+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
116+
html = '<span class="' + \
117+
EVENT_CLASSES[res_event_class] + '">' + \
118+
icon + event_class + '</span>'
119+
self.assertEqual(event_class_formated, html)
120+
event_class = "Some debug event"
121+
instance, created = MEvent.objects.get_or_create(
122+
name="Event name", event_class=event_class)
123+
event_class_formated = format_event_class(event_class=event_class)
124+
res_event_class = 'Debug'
125+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
126+
html = '<span class="' + \
127+
EVENT_CLASSES[res_event_class] + '">' + \
128+
icon + event_class + '</span>'
129+
self.assertEqual(event_class_formated, html)
130+
event_class = "Some warning event"
131+
instance, created = MEvent.objects.get_or_create(
132+
name="Event name", event_class=event_class)
133+
event_class_formated = format_event_class(event_class=event_class)
134+
res_event_class = 'Warning'
135+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
136+
html = '<span class="' + \
137+
EVENT_CLASSES[res_event_class] + '">' + \
138+
icon + event_class + '</span>'
139+
self.assertEqual(event_class_formated, html)
140+
event_class = "Some info event"
141+
instance, created = MEvent.objects.get_or_create(
142+
name="Event name", event_class=event_class)
143+
event_class_formated = format_event_class(event_class=event_class)
144+
res_event_class = 'Info'
145+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
146+
html = '<span class="' + \
147+
EVENT_CLASSES[res_event_class] + '">' + \
148+
icon + event_class + '</span>'
149+
self.assertEqual(event_class_formated, html)
150+
event_class = "Some important event"
151+
instance, created = MEvent.objects.get_or_create(
152+
name="Event name", event_class=event_class)
153+
event_class_formated = format_event_class(event_class=event_class)
154+
res_event_class = 'Important'
155+
icon = EVENT_ICONS_HTML[res_event_class] + '&nbsp;'
156+
html = '<span class="' + \
157+
EVENT_CLASSES[res_event_class] + '">' + \
158+
icon + event_class + '</span>'
159+
self.assertEqual(event_class_formated, html)

0 commit comments

Comments
 (0)