1
- import pdb
2
- import asyncio
3
-
4
1
from django .test import TestCase , tag , TransactionTestCase
5
- from django .conf import settings
6
2
from django .apps import apps
7
3
from unittest import IsolatedAsyncioTestCase
8
- import time
9
-
10
4
from .models import TestModel
11
5
12
6
13
-
14
7
class AppLoadingTestCase (TestCase ):
15
8
16
9
@tag ('ci' )
17
10
def test_dao_loaded (self ):
18
11
self .assertTrue (apps .is_installed ('django_async_orm' ))
19
12
20
-
21
13
@tag ('ci' )
22
14
def test_manager_is_async (self ):
23
15
manager_class_name = TestModel .objects .__class__ .__name__
@@ -51,16 +43,28 @@ async def test_async_bulk_create(self):
51
43
TestModel (name = 'bulk create 1' ),
52
44
TestModel (name = 'bulk create 2' ),
53
45
])
54
-
55
- self .assertEqual (len (objs ), 2 )
46
+ objs = await TestModel .objects .async_all ()
47
+ objs = await objs .async_count ()
48
+ self .assertEqual (objs , 4 )
56
49
57
50
@tag ('dev' )
58
51
async def test_async_bulk_update (self ):
59
52
self .assertTrue (False , "Not Implemented" )
60
53
61
- @tag ('dev ' )
54
+ @tag ('ci ' )
62
55
async def test_async_get_or_create (self ):
63
- self .assertTrue (False , "Not Implemented" )
56
+
57
+ async def test_async_get_or_create_on_obj_get (self ):
58
+ obj = await TestModel .objects .async_get_or_create (name = "setup 1" )
59
+ self .assertEqual (obj [1 ], False )
60
+
61
+ async def test_async_get_or_create_on_obj_create (self ):
62
+ obj = await TestModel .objects .async_get_or_create (name = "setup 3" )
63
+ self .assertEqual (obj [0 ].name , "setup 3" )
64
+ self .assertEqual (obj [1 ], True )
65
+
66
+ await test_async_get_or_create_on_obj_get (self )
67
+ await test_async_get_or_create_on_obj_create (self )
64
68
65
69
@tag ('dev' )
66
70
async def test_async_update_or_create (self ):
@@ -96,29 +100,29 @@ async def test_async_in_bulk(self):
96
100
97
101
@tag ('ci' )
98
102
async def test_async_delete (self ):
99
-
100
103
created = await TestModel .objects .async_create (name = "to delete" )
101
104
all_created = await TestModel .objects .async_all ()
102
- self .assertEqual (len (all_created ), 3 )
105
+ count = await all_created .async_count ()
106
+ self .assertEqual (count , 3 )
103
107
104
108
await all_created .async_delete ()
105
109
all_after_delete = await TestModel .objects .async_all ()
106
- self .assertEqual (len (all_after_delete ), 0 )
110
+ count = await all_after_delete .async_count ()
111
+ self .assertEqual (count , 0 )
107
112
108
113
@tag ('ci' )
109
114
async def test_async_update (self ):
110
115
created = await TestModel .objects .async_create (name = "to update" )
111
116
qs = await TestModel .objects .async_filter (name = "to update" )
112
117
updated = await qs .async_update (name = "updated" )
113
-
114
118
self .assertEqual (updated , 1 )
115
119
116
120
@tag ('ci' )
117
121
async def test_async_exists (self ):
118
122
qs = await TestModel .objects .async_filter (name = 'setup 1' )
119
123
exists = await qs .async_exists ()
120
124
self .assertTrue (exists )
121
-
125
+
122
126
@tag ('ci' )
123
127
async def test_async_explain (self ):
124
128
explained = await (await TestModel .objects .async_filter (name = "setup 1" )).async_explain ()
@@ -129,11 +133,12 @@ async def test_async_explain(self):
129
133
async def test_async_raw (self ):
130
134
rs = await TestModel .objects .async_raw ('SELECT * from tests_testmodel' )
131
135
print (list (rs ))
132
-
133
- @tag ('dev ' )
136
+
137
+ @tag ('ci ' )
134
138
async def test_async_count (self ):
135
139
result = await TestModel .objects .async_all ()
136
- self .assertEqual (result .count (), 1 )
140
+ result = await result .async_count ()
141
+ self .assertEqual (result , 2 )
137
142
138
143
@tag ('ci' )
139
144
async def test_async_none (self ):
@@ -155,7 +160,8 @@ async def test_async_fetch_all(self):
155
160
@tag ('ci' )
156
161
async def test_async_all (self ):
157
162
result = await TestModel .objects .async_all ()
158
- self .assertEqual (len (result ), 2 )
163
+ result = await result .async_count ()
164
+ self .assertEqual (result , 2 )
159
165
160
166
@tag ('ci' )
161
167
async def test_async_filter (self ):
@@ -198,9 +204,19 @@ async def test_async_prefetch_related(self):
198
204
async def test_async_annotate (self ):
199
205
self .assertTrue (False , "Not Implemented" )
200
206
201
- @tag ('dev' )
202
- async def test_async_order_by (self ):
203
- self .assertTrue (False , "Not Implemented" )
207
+ @tag ('ci' )
208
+ async def test_async_order_by_ascending (self ):
209
+ qs = await TestModel .objects .async_all ()
210
+ qs = await qs .async_order_by ('name' )
211
+ qs = await qs .async_first ()
212
+ self .assertEqual (qs .name , "setup 1" )
213
+
214
+ @tag ('ci' )
215
+ async def test_async_order_by_descending (self ):
216
+ qs = await TestModel .objects .async_all ()
217
+ qs = await qs .async_order_by ('-name' )
218
+ qs = await qs .async_first ()
219
+ self .assertEqual (qs .name , "setup 2" )
204
220
205
221
@tag ('dev' )
206
222
async def test_async_distinct (self ):
0 commit comments