Browse Source

Modification to be less dependent to django + logging in db wrapper

Yann Weber 9 years ago
parent
commit
ebdb512500

+ 11
- 4
Database/sqlwrapper.py View File

@@ -5,6 +5,9 @@ from Database.sqlsettings import SQLSettings as sqlsettings
5 5
 from django.conf import settings
6 6
 import re
7 7
 
8
+import logging as logger #TODO hack to replace the standarts use of logging in django
9
+logger.getLogger().setLevel('DEBUG')
10
+
8 11
 class SqlWrapper(object):
9 12
 
10 13
     def __init__(self):
@@ -155,8 +158,9 @@ class SqlWrapper(object):
155 158
         try:
156 159
             table.create(self.get_write_engine())
157 160
             return True
158
-        except:
161
+        except Exception as e:
159 162
             # TODO Ajuster le code d'erreur à retourner
163
+            logger.warning("Error creating table : "+str(e))
160 164
             return False
161 165
 
162 166
 
@@ -187,8 +191,9 @@ class SqlWrapper(object):
187 191
             table.drop(db, checkfirst=True)
188 192
             db.close()
189 193
             return True
190
-        except:
194
+        except Exception as e:
191 195
             # TODO ajuster le code d'erreur
196
+            logger.warning("Error droping table : "+str(e))
192 197
             return False
193 198
 
194 199
 
@@ -277,8 +282,9 @@ class SqlWrapper(object):
277 282
             sqlresult = self.execute(update_object, sqlsettings.ACTION_TYPE_WRITE)
278 283
             updated_lines_count = sqlresult.rowcount
279 284
 
280
-        except DataError:
285
+        except DataError as e:
281 286
             # TODO Voir si on garde "-1" ou si on place un "None" ou un "False"
287
+            logger.warning("Error updating database : "+str(e))
282 288
             updated_lines_count = -1
283 289
 
284 290
         return updated_lines_count
@@ -369,7 +375,8 @@ class SqlWrapper(object):
369 375
             records = sqlresult.fetchall()
370 376
             for record in records:
371 377
                 selected_lines.append(dict(zip(record.keys(), record)))
372
-        except:
378
+        except Exception as e:
379
+            logger.debug("Error selecting in database : "+str(e))
373 380
             selected_lines = None
374 381
 
375 382
         return selected_lines

+ 4
- 0
EditorialModel/lib/component.py View File

@@ -6,6 +6,9 @@
6 6
 """
7 7
 
8 8
 from Lodel.utils.mlstring import MlString
9
+import logging
10
+
11
+logger = logging.getLogger('Lodel2.EditorialModel')
9 12
 
10 13
 class EmComponent(object):
11 14
 
@@ -14,6 +17,7 @@ class EmComponent(object):
14 17
         @exception TypeError
15 18
     """
16 19
     def __init__(self, id_or_name):
20
+        logger.debug('Instanciation : '+str(id_or_name))
17 21
         if self is EmComponent:
18 22
             raise EnvironmentError('Abstract class')
19 23
         if type(id_or_name) is int:

+ 3
- 1
EditorialModel/test/test_component.py View File

@@ -1,4 +1,5 @@
1
-from django.test import TestCase
1
+#from django.test import TestCase
2
+from unittest import TestCase
2 3
 from EditorialModel.lib.component import EmComponent
3 4
 
4 5
 class ComponentTestCase(TestCase):
@@ -6,3 +7,4 @@ class ComponentTestCase(TestCase):
6 7
     def test_component_instanciate_with_numeric_id(self):
7 8
         testComp = EmComponent(2)
8 9
         self.assertEqual(testComp.id, 2)
10
+

+ 22
- 1
Lodel/settings/defaults.py View File

@@ -26,6 +26,28 @@ TEMPLATE_DEBUG = True
26 26
 
27 27
 ALLOWED_HOSTS = []
28 28
 
29
+LOGGING = {
30
+    'version': 1,
31
+    'disable_existing_loggers': False,
32
+    'handlers': {
33
+        'console': {
34
+            'class': 'logging.StreamHandler',
35
+            'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
36
+        },
37
+    },
38
+    'loggers': {
39
+        'django': {
40
+            'handlers': ['console'],
41
+            'propagate': True,
42
+            'level': 'DEBUG',
43
+        },
44
+        'Lodel2.database': {
45
+            'handlers': ['console'],
46
+            'level': 'DEBUG',
47
+            'propagate': True,
48
+        },
49
+    },
50
+}
29 51
 
30 52
 # Application definition
31 53
 
@@ -55,7 +77,6 @@ WSGI_APPLICATION = 'Lodel.wsgi.application'
55 77
 
56 78
 # Database
57 79
 # https://docs.djangoproject.com/en/1.7/ref/settings/#databases
58
-
59 80
 DATABASES = {
60 81
     'default': {
61 82
         'ENGINE': 'django.db.backends.sqlite3',

+ 3
- 0
runtest View File

@@ -0,0 +1,3 @@
1
+#!/bin/bash
2
+
3
+python -m unittest

+ 6
- 0
test.py View File

@@ -0,0 +1,6 @@
1
+from django.conf import settings
2
+import logging
3
+
4
+logger = logging.getLogger('Lodel2.Database')
5
+
6
+logger.debug('Foobar')

Loading…
Cancel
Save