|
1 r""" |
|
2 |
|
3 >>> from django.conf import settings |
|
4 >>> from django.contrib.sessions.backends.db import SessionStore as DatabaseSession |
|
5 >>> from django.contrib.sessions.backends.cache import SessionStore as CacheSession |
|
6 >>> from django.contrib.sessions.backends.file import SessionStore as FileSession |
|
7 >>> from django.contrib.sessions.backends.base import SessionBase |
|
8 |
|
9 >>> db_session = DatabaseSession() |
|
10 >>> db_session.modified |
|
11 False |
|
12 >>> db_session['cat'] = "dog" |
|
13 >>> db_session.modified |
|
14 True |
|
15 >>> db_session.pop('cat') |
|
16 'dog' |
|
17 >>> db_session.pop('some key', 'does not exist') |
|
18 'does not exist' |
|
19 >>> db_session.save() |
|
20 >>> db_session.exists(db_session.session_key) |
|
21 True |
|
22 >>> db_session.delete(db_session.session_key) |
|
23 >>> db_session.exists(db_session.session_key) |
|
24 False |
|
25 |
|
26 >>> file_session = FileSession() |
|
27 >>> file_session.modified |
|
28 False |
|
29 >>> file_session['cat'] = "dog" |
|
30 >>> file_session.modified |
|
31 True |
|
32 >>> file_session.pop('cat') |
|
33 'dog' |
|
34 >>> file_session.pop('some key', 'does not exist') |
|
35 'does not exist' |
|
36 >>> file_session.save() |
|
37 >>> file_session.exists(file_session.session_key) |
|
38 True |
|
39 >>> file_session.delete(file_session.session_key) |
|
40 >>> file_session.exists(file_session.session_key) |
|
41 False |
|
42 |
|
43 # Make sure the file backend checks for a good storage dir |
|
44 >>> settings.SESSION_FILE_PATH = "/if/this/directory/exists/you/have/a/weird/computer" |
|
45 >>> FileSession() |
|
46 Traceback (innermost last): |
|
47 ... |
|
48 ImproperlyConfigured: The session storage path '/if/this/directory/exists/you/have/a/weird/computer' doesn't exist. Please set your SESSION_FILE_PATH setting to an existing directory in which Django can store session data. |
|
49 |
|
50 >>> cache_session = CacheSession() |
|
51 >>> cache_session.modified |
|
52 False |
|
53 >>> cache_session['cat'] = "dog" |
|
54 >>> cache_session.modified |
|
55 True |
|
56 >>> cache_session.pop('cat') |
|
57 'dog' |
|
58 >>> cache_session.pop('some key', 'does not exist') |
|
59 'does not exist' |
|
60 >>> cache_session.save() |
|
61 >>> cache_session.delete(cache_session.session_key) |
|
62 >>> cache_session.exists(cache_session.session_key) |
|
63 False |
|
64 |
|
65 >>> s = SessionBase() |
|
66 >>> s._session['some key'] = 'exists' # Pre-populate the session with some data |
|
67 >>> s.accessed = False # Reset to pretend this wasn't accessed previously |
|
68 |
|
69 >>> s.accessed, s.modified |
|
70 (False, False) |
|
71 |
|
72 >>> s.pop('non existant key', 'does not exist') |
|
73 'does not exist' |
|
74 >>> s.accessed, s.modified |
|
75 (True, False) |
|
76 |
|
77 >>> s.setdefault('foo', 'bar') |
|
78 'bar' |
|
79 >>> s.setdefault('foo', 'baz') |
|
80 'bar' |
|
81 |
|
82 >>> s.accessed = False # Reset the accessed flag |
|
83 |
|
84 >>> s.pop('some key') |
|
85 'exists' |
|
86 >>> s.accessed, s.modified |
|
87 (True, True) |
|
88 |
|
89 >>> s.pop('some key', 'does not exist') |
|
90 'does not exist' |
|
91 """ |
|
92 |
|
93 if __name__ == '__main__': |
|
94 import doctest |
|
95 doctest.testmod() |