[Python-modules-commits] [python-gammu] 01/07: Imported Upstream version 2.1

Michal Cihar nijel at moszumanska.debian.org
Wed Apr 15 08:17:47 UTC 2015


This is an automated email from the git hooks/post-receive script.

nijel pushed a commit to branch master
in repository python-gammu.

commit 6bd7cd8a5a19cbf9dd99b9f5e189325b713a14aa
Author: Michal Čihař <michal at cihar.com>
Date:   Wed Apr 15 09:43:13 2015 +0200

    Imported Upstream version 2.1
---
 MANIFEST.in                                |   2 +
 NEWS.rst                                   |  14 ++
 PKG-INFO                                   |   5 +-
 README.rst                                 |   3 +
 gammu/src/convertors/base.c                |   4 +
 gammu/src/convertors/diverts.c             |   2 +-
 gammu/src/convertors/memory.c              |   7 +-
 gammu/src/convertors/sms.c                 |   3 +
 gammu/src/convertors/string.c              |   2 +-
 gammu/src/convertors/wap.c                 |  19 ++-
 gammu/src/gammu.c                          |  21 ++-
 python_gammu.egg-info/PKG-INFO             |   5 +-
 python_gammu.egg-info/SOURCES.txt          |  23 +++-
 setup.py                                   |   2 +-
 test/data/gammu-dummy/calendar/2           |  15 +++
 test/data/gammu-dummy/calendar/22          |  10 ++
 test/data/gammu-dummy/fs/dir2/dir2-5/file1 |   1 +
 test/data/gammu-dummy/fs/dir2/dir2-5/file2 |   1 +
 test/data/gammu-dummy/fs/dir2/dir2-5/file3 |   1 +
 test/data/gammu-dummy/fs/dir2/dir2-5/file4 |   1 +
 test/data/gammu-dummy/fs/dir2/file5        |   1 +
 test/data/gammu-dummy/fs/file5             |   1 +
 test/data/gammu-dummy/pbk/ME/1             |   6 +
 test/data/gammu-dummy/pbk/ME/101           |  16 +++
 test/data/gammu-dummy/pbk/ME/103           | 206 +++++++++++++++++++++++++++++
 test/data/gammu-dummy/pbk/SM/1             |  20 +++
 test/data/gammu-dummy/sms/1/1              |   8 ++
 test/data/gammu-dummy/sms/2/10             |   9 ++
 test/data/gammu-dummy/sms/3/42             |   8 ++
 test/data/gammu-dummy/sms/4/15             |   9 ++
 test/data/gammu-dummy/sms/4/20             |  25 ++++
 test/data/gammu-dummy/sms/4/21             |  25 ++++
 test/data/gammu-dummy/todo/22              |  14 ++
 test/data/gammu-dummy/todo/3               |  18 +++
 test/test_dummy.py                         |   2 +-
 35 files changed, 488 insertions(+), 21 deletions(-)

diff --git a/MANIFEST.in b/MANIFEST.in
index 9877d8a..1d1645e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,8 +1,10 @@
 include AUTHORS
 include COPYING
 include README.rst
+include NEWS.rst
 include include/*.h
 recursive-include examples *.py
 recursive-include test *.py
+recursive-include test/data/gammu-dummy *
 include test/data/*.*
 include examples/data/*.jpg
diff --git a/NEWS.rst b/NEWS.rst
new file mode 100644
index 0000000..41e4b8f
--- /dev/null
+++ b/NEWS.rst
@@ -0,0 +1,14 @@
+2.1
+===
+
+* Include data required for tests in tarball.
+* Include NEWS.rst in tarball.
+* Fixed possible crash when changing debug file.
+* Fixed various errors found by coverity.
+
+2.0
+===
+
+* Separate Python module.
+* Compiles using distutils.
+* Support Python 3.
diff --git a/PKG-INFO b/PKG-INFO
index c3dc381..aa14458 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-gammu
-Version: 2.0
+Version: 2.1
 Summary: Gammu bindings
 Home-page: http://wammu.eu/python-gammu/
 Author: Michal Čihař
@@ -28,6 +28,9 @@ Description: python-gammu
         .. image:: https://buildtimetrend.herokuapp.com/badge/gammu/python-gammu/latest
             :target: https://buildtimetrend.herokuapp.com/dashboard/gammu/python-gammu
         
+        .. image:: https://scan.coverity.com/projects/4837/badge.svg
+            :target: https://scan.coverity.com/projects/4837
+        
         Python bindings for Gammu library.
         
         Homepage
diff --git a/README.rst b/README.rst
index 25f4293..14d3f6d 100644
--- a/README.rst
+++ b/README.rst
@@ -19,6 +19,9 @@ python-gammu
 .. image:: https://buildtimetrend.herokuapp.com/badge/gammu/python-gammu/latest
     :target: https://buildtimetrend.herokuapp.com/dashboard/gammu/python-gammu
 
+.. image:: https://scan.coverity.com/projects/4837/badge.svg
+    :target: https://scan.coverity.com/projects/4837
+
 Python bindings for Gammu library.
 
 Homepage
diff --git a/gammu/src/convertors/base.c b/gammu/src/convertors/base.c
index 8e80f3a..902cf61 100644
--- a/gammu/src/convertors/base.c
+++ b/gammu/src/convertors/base.c
@@ -239,6 +239,8 @@ GSM_DateTime GetDateTimeFromDict(PyObject * dict, const char *key)
 	PyObject *o;
 	GSM_DateTime dt;
 
+	memset(&dt, 0, sizeof(GSM_DateTime));
+
 	o = PyDict_GetItemString(dict, key);
 	if (o == NULL) {
 		PyErr_Format(PyExc_ValueError, "Missing key in dictionary: %s",
@@ -263,6 +265,8 @@ GSM_DateTime GetDateFromDict(PyObject * dict, const char *key)
 	PyObject *o;
 	GSM_DateTime dt;
 
+	memset(&dt, 0, sizeof(GSM_DateTime));
+
 	o = PyDict_GetItemString(dict, key);
 	if (o == NULL) {
 		PyErr_Format(PyExc_ValueError, "Missing key in dictionary: %s",
diff --git a/gammu/src/convertors/diverts.c b/gammu/src/convertors/diverts.c
index 164f94f..59d8373 100644
--- a/gammu/src/convertors/diverts.c
+++ b/gammu/src/convertors/diverts.c
@@ -134,7 +134,7 @@ PyObject *CallDivertsToPython(GSM_MultiCallDivert *cd)
             return NULL;
         }
         ct = DivertCallTypeToString(cd->Entries[i].CallType);
-        if (dt == NULL) {
+        if (ct == NULL) {
             Py_DECREF(ret);
             Py_DECREF(num);
             free(dt);
diff --git a/gammu/src/convertors/memory.c b/gammu/src/convertors/memory.c
index 7e743cf..cb96c77 100644
--- a/gammu/src/convertors/memory.c
+++ b/gammu/src/convertors/memory.c
@@ -676,9 +676,10 @@ int MemoryEntryFromPython(PyObject * dict, GSM_MemoryEntry * entry,
 				if (entry->Entries[i].Picture.Buffer == NULL) {
 					return 0;
 				}
-				bmptype =
-				    GetCharFromDict(item, "PictureType");
-				if (strcmp(bmptype, "BMP") == 0) {
+				bmptype = GetCharFromDict(item, "PictureType");
+				if (bmptype == NULL) {
+					entry->Entries[i].Picture.Type = 0;
+				} else if (strcmp(bmptype, "BMP") == 0) {
 					entry->Entries[i].Picture.Type =
 					    PICTURE_BMP;
 				} else if (strcmp(bmptype, "GIF") == 0) {
diff --git a/gammu/src/convertors/sms.c b/gammu/src/convertors/sms.c
index f94d2b1..1342361 100644
--- a/gammu/src/convertors/sms.c
+++ b/gammu/src/convertors/sms.c
@@ -861,6 +861,9 @@ int SMSFromPython(PyObject * dict, GSM_SMSMessage * sms, int needslocation,
 	if (s == NULL || strcmp(s, "") == 0) {
 		sms->Memory = 0;
 		PyErr_Clear();
+		if (s != NULL) {
+			free(s);
+		}
 	} else {
 		sms->Memory = StringToMemoryType(s);
 		free(s);
diff --git a/gammu/src/convertors/string.c b/gammu/src/convertors/string.c
index 1fe945a..6251664 100644
--- a/gammu/src/convertors/string.c
+++ b/gammu/src/convertors/string.c
@@ -56,7 +56,7 @@ unsigned char *strPythonToGammu(const Py_UNICODE * src, const size_t len)
 	size_t i;
 
 	/* Allocate memory */
-	dest = malloc((len + 1) * 2 * sizeof(char));
+	dest = malloc((len + 1) * 2 * sizeof(unsigned char));
 	if (dest == NULL) {
 		PyErr_SetString(PyExc_MemoryError,
 				"Not enough memory to allocate string");
diff --git a/gammu/src/convertors/wap.c b/gammu/src/convertors/wap.c
index f16d2ed..f4862a9 100644
--- a/gammu/src/convertors/wap.c
+++ b/gammu/src/convertors/wap.c
@@ -101,7 +101,10 @@ int MMSIndicatorFromPython(PyObject * dict, GSM_MMSIndicator * mms)
 	memset(mms, 0, sizeof(GSM_MMSIndicator));
 
 	s = GetCharFromDict(dict, "Address");
-	if (strlen(s) > 499) {
+	if (s == NULL) {
+		PyErr_Format(PyExc_ValueError, "Address is missing!");
+		return 0;
+	} else if (strlen(s) > 499) {
 		PyErr_Format(PyExc_ValueError, "Address too long!");
 		free(s);
 		return 0;
@@ -110,7 +113,10 @@ int MMSIndicatorFromPython(PyObject * dict, GSM_MMSIndicator * mms)
 	free(s);
 
 	s = GetCharFromDict(dict, "Title");
-	if (strlen(s) > 499) {
+	if (s == NULL) {
+		PyErr_Format(PyExc_ValueError, "Title is missing!");
+		return 0;
+	} else if (strlen(s) > 499) {
 		free(s);
 		PyErr_Format(PyExc_ValueError, "Title too long!");
 		return 0;
@@ -119,7 +125,10 @@ int MMSIndicatorFromPython(PyObject * dict, GSM_MMSIndicator * mms)
 	free(s);
 
 	s = GetCharFromDict(dict, "Sender");
-	if (strlen(s) > 499) {
+	if (s == NULL) {
+		PyErr_Format(PyExc_ValueError, "Sender is missing!");
+		return 0;
+	} else if (strlen(s) > 499) {
 		free(s);
 		PyErr_Format(PyExc_ValueError, "Sender too long!");
 		return 0;
@@ -154,8 +163,10 @@ PyObject *WAPBookmarkToPython(GSM_WAPBookmark * wap)
 		return NULL;
 
 	address = strGammuToPython(wap->Address);
-	if (address == NULL)
+	if (address == NULL) {
+		free(title);
 		return NULL;
+	}
 
 	ret = Py_BuildValue("{s:s,s:s,s:i}",
 			    "Address", address,
diff --git a/gammu/src/gammu.c b/gammu/src/gammu.c
index f4aa249..f224b7d 100644
--- a/gammu/src/gammu.c
+++ b/gammu/src/gammu.c
@@ -176,8 +176,9 @@ gammu_set_debug(GSM_Debug_Info *di, PyObject *value, PyObject **debug_object)
     }
     if (new_debug_object != NULL) {
         Py_INCREF(new_debug_object);
-        *debug_object = new_debug_object;
     }
+    *debug_object = new_debug_object;
+
 
     Py_RETURN_NONE;
 }
@@ -323,7 +324,7 @@ static void CheckIncomingEvents(StateMachineObject *sm) {
         do {
             sm->IncomingCallQueue[i] = sm->IncomingCallQueue[i + 1];
             i++;
-        } while (sm->IncomingCallQueue[i] != NULL && i < MAX_EVENTS);
+        } while (i < MAX_EVENTS && sm->IncomingCallQueue[i] != NULL);
 
         if (arglist == NULL) {
             pyg_error("Discarding incoming call event due to error while building params!\n");
@@ -361,7 +362,7 @@ static void CheckIncomingEvents(StateMachineObject *sm) {
         do {
             sm->IncomingSMSQueue[i] = sm->IncomingSMSQueue[i + 1];
             i++;
-        } while (sm->IncomingSMSQueue[i] != NULL && i < MAX_EVENTS);
+        } while (i < MAX_EVENTS && sm->IncomingSMSQueue[i] != NULL);
 
         arglist = Py_BuildValue("(OsO)", sm, "SMS", event);
         Py_DECREF(event);
@@ -394,7 +395,7 @@ static void CheckIncomingEvents(StateMachineObject *sm) {
         do {
             sm->IncomingCBQueue[i] = sm->IncomingCBQueue[i + 1];
             i++;
-        } while (sm->IncomingCBQueue[i] != NULL && i < MAX_EVENTS);
+        } while (i < MAX_EVENTS && sm->IncomingCBQueue[i] != NULL);
 
         if (arglist == NULL) {
             pyg_error("Discarding incoming CB event due to error while building params!\n");
@@ -425,7 +426,7 @@ static void CheckIncomingEvents(StateMachineObject *sm) {
         do {
             sm->IncomingUSSDQueue[i] = sm->IncomingUSSDQueue[i + 1];
             i++;
-        } while (sm->IncomingUSSDQueue[i] != NULL && i < MAX_EVENTS);
+        } while (i < MAX_EVENTS && sm->IncomingUSSDQueue[i] != NULL);
 
         if (arglist == NULL) {
             pyg_error("Discarding incoming USSD event due to error while building params!\n");
@@ -1225,7 +1226,10 @@ StateMachine_GetAlarm(StateMachineObject *self, PyObject *args, PyObject *kwds)
 
     if (gsm_alarm.Repeating) {
         dt = BuildPythonTime(&(gsm_alarm.DateTime));
-        if (dt == NULL) return NULL;
+        if (dt == NULL) {
+            free(s);
+            return NULL;
+        }
 
         result = Py_BuildValue("{s:i,s:O,s:i,s:u}",
                 "Location", gsm_alarm.Location,
@@ -1235,7 +1239,10 @@ StateMachine_GetAlarm(StateMachineObject *self, PyObject *args, PyObject *kwds)
         Py_DECREF(dt);
     } else {
         dt = BuildPythonTime(&(gsm_alarm.DateTime));
-        if (dt == NULL) return NULL;
+        if (dt == NULL) {
+            free(s);
+            return NULL;
+        }
 
         result = Py_BuildValue("{s:i,s:O,s:i,s:u}",
                 "Location", gsm_alarm.Location,
diff --git a/python_gammu.egg-info/PKG-INFO b/python_gammu.egg-info/PKG-INFO
index c3dc381..aa14458 100644
--- a/python_gammu.egg-info/PKG-INFO
+++ b/python_gammu.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: python-gammu
-Version: 2.0
+Version: 2.1
 Summary: Gammu bindings
 Home-page: http://wammu.eu/python-gammu/
 Author: Michal Čihař
@@ -28,6 +28,9 @@ Description: python-gammu
         .. image:: https://buildtimetrend.herokuapp.com/badge/gammu/python-gammu/latest
             :target: https://buildtimetrend.herokuapp.com/dashboard/gammu/python-gammu
         
+        .. image:: https://scan.coverity.com/projects/4837/badge.svg
+            :target: https://scan.coverity.com/projects/4837
+        
         Python bindings for Gammu library.
         
         Homepage
diff --git a/python_gammu.egg-info/SOURCES.txt b/python_gammu.egg-info/SOURCES.txt
index 9c870b3..baa81ed 100644
--- a/python_gammu.egg-info/SOURCES.txt
+++ b/python_gammu.egg-info/SOURCES.txt
@@ -1,6 +1,7 @@
 AUTHORS
 COPYING
 MANIFEST.in
+NEWS.rst
 README.rst
 setup.py
 examples/__init__.py
@@ -85,4 +86,24 @@ test/data/bug-779.vcf
 test/data/gammu.vcf
 test/data/k770.vcs
 test/data/rrule.ics
-test/data/sqlite.sql
\ No newline at end of file
+test/data/sqlite.sql
+test/data/gammu-dummy/calendar/2
+test/data/gammu-dummy/calendar/22
+test/data/gammu-dummy/fs/file5
+test/data/gammu-dummy/fs/dir2/file5
+test/data/gammu-dummy/fs/dir2/dir2-5/file1
+test/data/gammu-dummy/fs/dir2/dir2-5/file2
+test/data/gammu-dummy/fs/dir2/dir2-5/file3
+test/data/gammu-dummy/fs/dir2/dir2-5/file4
+test/data/gammu-dummy/pbk/ME/1
+test/data/gammu-dummy/pbk/ME/101
+test/data/gammu-dummy/pbk/ME/103
+test/data/gammu-dummy/pbk/SM/1
+test/data/gammu-dummy/sms/1/1
+test/data/gammu-dummy/sms/2/10
+test/data/gammu-dummy/sms/3/42
+test/data/gammu-dummy/sms/4/15
+test/data/gammu-dummy/sms/4/20
+test/data/gammu-dummy/sms/4/21
+test/data/gammu-dummy/todo/22
+test/data/gammu-dummy/todo/3
\ No newline at end of file
diff --git a/setup.py b/setup.py
index f4ba738..fb0bf12 100755
--- a/setup.py
+++ b/setup.py
@@ -27,7 +27,7 @@ from setuptools import setup, Extension
 import os
 
 # some defines
-VERSION = '2.0'
+VERSION = '2.1'
 GAMMU_REQUIRED = '1.34.0'
 with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
     README = readme.read()
diff --git a/test/data/gammu-dummy/calendar/2 b/test/data/gammu-dummy/calendar/2
new file mode 100644
index 0000000..c426b03
--- /dev/null
+++ b/test/data/gammu-dummy/calendar/2
@@ -0,0 +1,15 @@
+BEGIN:VCALENDAR
+VERSION:1.0
+BEGIN:VEVENT
+SUMMARY:Tester
+CLASS:PUBLIC
+LOCATION:C/S/007
+DTSTAMP:20040120T140801Z
+DTSTART:20040123T120000
+DTEND:20040123T123000
+TRANSP:OPAQUE
+SEQUENCE:2
+RRULE:W1 FR #9
+LAST-MODIFIED:20040120T140828Z
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/gammu-dummy/calendar/22 b/test/data/gammu-dummy/calendar/22
new file mode 100644
index 0000000..60afef9
--- /dev/null
+++ b/test/data/gammu-dummy/calendar/22
@@ -0,0 +1,10 @@
+BEGIN:VCALENDAR
+METHOD:PUBLISH
+VERSION:2.0
+BEGIN:VEVENT
+SUMMARY:Coffee with Jason
+DTSTART:20021028
+DTSTAMP:20021028T011706Z
+UID:EC9439B1-FF65-11D6-9973-003065F99D04
+END:VEVENT
+END:VCALENDAR
diff --git a/test/data/gammu-dummy/fs/dir2/dir2-5/file1 b/test/data/gammu-dummy/fs/dir2/dir2-5/file1
new file mode 100644
index 0000000..37f0ddc
--- /dev/null
+++ b/test/data/gammu-dummy/fs/dir2/dir2-5/file1
@@ -0,0 +1 @@
+This is testing file1!
\ No newline at end of file
diff --git a/test/data/gammu-dummy/fs/dir2/dir2-5/file2 b/test/data/gammu-dummy/fs/dir2/dir2-5/file2
new file mode 100644
index 0000000..74f940b
--- /dev/null
+++ b/test/data/gammu-dummy/fs/dir2/dir2-5/file2
@@ -0,0 +1 @@
+This is testing file2!
\ No newline at end of file
diff --git a/test/data/gammu-dummy/fs/dir2/dir2-5/file3 b/test/data/gammu-dummy/fs/dir2/dir2-5/file3
new file mode 100644
index 0000000..302a906
--- /dev/null
+++ b/test/data/gammu-dummy/fs/dir2/dir2-5/file3
@@ -0,0 +1 @@
+This is testing file3!
\ No newline at end of file
diff --git a/test/data/gammu-dummy/fs/dir2/dir2-5/file4 b/test/data/gammu-dummy/fs/dir2/dir2-5/file4
new file mode 100644
index 0000000..8d5cddc
--- /dev/null
+++ b/test/data/gammu-dummy/fs/dir2/dir2-5/file4
@@ -0,0 +1 @@
+This is testing file4!
\ No newline at end of file
diff --git a/test/data/gammu-dummy/fs/dir2/file5 b/test/data/gammu-dummy/fs/dir2/file5
new file mode 100644
index 0000000..a731745
--- /dev/null
+++ b/test/data/gammu-dummy/fs/dir2/file5
@@ -0,0 +1 @@
+This is testing file6!
\ No newline at end of file
diff --git a/test/data/gammu-dummy/fs/file5 b/test/data/gammu-dummy/fs/file5
new file mode 100644
index 0000000..d43b53e
--- /dev/null
+++ b/test/data/gammu-dummy/fs/file5
@@ -0,0 +1 @@
+This is testing file5!
\ No newline at end of file
diff --git a/test/data/gammu-dummy/pbk/ME/1 b/test/data/gammu-dummy/pbk/ME/1
new file mode 100644
index 0000000..8c1cc04
--- /dev/null
+++ b/test/data/gammu-dummy/pbk/ME/1
@@ -0,0 +1,6 @@
+BEGIN:VCARD
+VERSION:2.1
+N: Nikdo;Nikdovic
+X-CALLER-GROUP:10
+X-PRIVATE:1
+END:VCARD
diff --git a/test/data/gammu-dummy/pbk/ME/101 b/test/data/gammu-dummy/pbk/ME/101
new file mode 100644
index 0000000..58ee75a
--- /dev/null
+++ b/test/data/gammu-dummy/pbk/ME/101
@@ -0,0 +1,16 @@
+BEGIN:VCARD
+VERSION:2.1
+SOURCE:Yahoo! AddressBook (http://address.yahoo.com)
+PRODID:-//Yahoo!/AddressBook/YAB3/2007
+FN;CHARSET=utf-8:ACENET
+N;CHARSET=utf-8:;ACENET;;;
+TEL;HOME;PREF;CHARSET=utf-8:(07) 3899-5174
+TEL;WORK;CHARSET=utf-8:(07) 3899-1411
+NOTE;CHARSET=utf-8:ISP Ph 019833206\n\n
+UID;CHARSET=utf-8:59fd7826c3be2b3646a08c008e5fc669
+X-CID;CHARSET=utf-8:26
+X-CREATED;CHARSET=utf-8:1189935222
+X-MODIFIED;CHARSET=utf-8:1189935222
+REV;CHARSET=utf-8:1
+X-PRIMARY-PHONE;CHARSET=utf-8:0
+END:VCARD
diff --git a/test/data/gammu-dummy/pbk/ME/103 b/test/data/gammu-dummy/pbk/ME/103
new file mode 100644
index 0000000..9ca8ded
--- /dev/null
+++ b/test/data/gammu-dummy/pbk/ME/103
@@ -0,0 +1,206 @@
+BEGIN:VCARD
+VERSION:2.1
+N:Amore;
+TEL;CELL:+393123456789
+BDAY:19770324
+X-IRMC-LUID:000200000012
+PHOTO;ENCODING=BASE64;TYPE=JPEG:/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAIBAQICBAUG
+ AQEBAgMGBgYBAQICBAYHBgECAgMFCQgGAgIEBgcLCggCBAYGCAoLCQUGCAkKDAwKBwkKCgsKCgr
+ /2wBDAQICAgUKCgoKAgIDBwoKCgoCAwYKCgoKCgUHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg
+ oKCgoKCgoKCgoKCgr/wAARCAB4AKADACIAAREBAhEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECA
+ wQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0Kx
+ wRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R
+ 1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19
+ jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/
+ 8QAtREAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2Jy
+ ggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIW
+ Gh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5u
+ fo6erx8vP09fb3+Pn6/9oADAMAAAEAAgAAPwD8/ItZv7GIm3ltJVb5GWVB+6kH/wAVXmHjLQ783
+ +/SeLY7byVEY/uROORj/er1262/ZsXtqs2ejjhojn+//wDWry+/8VJFP5VzBdHn91IF5nhPTC+z
+ 5q+x96uuP72a9B+HVpnP+h6dj/WzTT9LUf7TGuyS5uLn5bCT7PD96a7VAGv8f88FHQfrWH8PtJm
+ vhj7Kdv8ArbW1QcIfWU98Cv0W/ZQ/4Jpw6PHpmr/GT4gfs1+II2njuh8PZNWjP/CQ2bR7turavb
+ eaqbvTbIOz4rNmm9frV1I/730FfDgtp34869b0QseR/u1b8G+D5teuPK8OS+Hodv73WNUv/uWQH
+ 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
+
+END:VCARD
diff --git a/test/data/gammu-dummy/pbk/SM/1 b/test/data/gammu-dummy/pbk/SM/1
new file mode 100644
index 0000000..759322f
--- /dev/null
+++ b/test/data/gammu-dummy/pbk/SM/1
@@ -0,0 +1,20 @@
+BEGIN:VCARD
+N:firstname lastname
+NOTE:Test1
+NOTE:Test2
+NOTE:Test3
+NOTE:Test4
+NOTE:Test5
+NOTE:Test6
+NOTE:Test7
+NOTE:Test8
+NOTE:Test9
+NOTE:Test10
+NOTE:Test11
+NOTE:Test12
+NOTE:Test13
+NOTE:Test14
+NOTE:Test15
+NOTE:Test16
+VERSION:2.1
+END:VCARD
diff --git a/test/data/gammu-dummy/sms/1/1 b/test/data/gammu-dummy/sms/1/1
new file mode 100644
index 0000000..669213f
--- /dev/null
+++ b/test/data/gammu-dummy/sms/1/1
@@ -0,0 +1,8 @@
+
+[SMSBackup000]
+SMSC = "1234"
+State = Read
+Number = "1234"
+Coding = Default
+Folder = 1
+Text00 = 003100320033003400350036
diff --git a/test/data/gammu-dummy/sms/2/10 b/test/data/gammu-dummy/sms/2/10
new file mode 100644
index 0000000..39646e1
--- /dev/null
+++ b/test/data/gammu-dummy/sms/2/10
@@ -0,0 +1,9 @@
+
+[SMSBackup000]
+SMSC = "800123456"
+State = Sent
+Number = "+41761234567"
+Coding = Default
+Folder = 2
+Sent = 20070605T135630
+Text00 = 005a006b006f00750161006b0061002000730069007200e9006e
diff --git a/test/data/gammu-dummy/sms/3/42 b/test/data/gammu-dummy/sms/3/42
new file mode 100644
index 0000000..abce3e7
--- /dev/null
+++ b/test/data/gammu-dummy/sms/3/42
@@ -0,0 +1,8 @@
+
+[SMSBackup000]
+SMSC = "+420800123456"
+State = Read
+Number = "1234"
+Coding = Unicode
+Folder = 1
+Text00 = 003100320033003400350036
diff --git a/test/data/gammu-dummy/sms/4/15 b/test/data/gammu-dummy/sms/4/15
new file mode 100644
index 0000000..030d029
--- /dev/null
+++ b/test/data/gammu-dummy/sms/4/15
@@ -0,0 +1,9 @@
+
+[SMSBackup000]
+SMSC = "800123456"
+State = Sent
+Number = "+420800123456"
+Coding = Unicode
+Folder = 2
+Sent = 20070605T135630
+Text00 = 005a006b006f00750161006b0061002000730069007200e9006e
diff --git a/test/data/gammu-dummy/sms/4/20 b/test/data/gammu-dummy/sms/4/20
new file mode 100644
index 0000000..6dca12e
--- /dev/null
+++ b/test/data/gammu-dummy/sms/4/20
@@ -0,0 +1,25 @@
+; This file format was designed for Gammu and is compatible with Gammu+
+; See <http://www.gammu.org> for more info
+; Saved 20100114T220009 (Čt 14. leden 2010, 22:00:09 )
+
+[SMSBackup000]
+SMSC = "+420603052000"
+SMSCUnicode = 002B003400320030003600300033003000350032003000300030
+PDU = Deliver
+DateTime = 20100114T204215
+State = Read
+Number = "5574"
+NumberUnicode = 0035003500370034
+Name = ""
+NameUnicode = 
+UDH = 0B05040B8423F00003AA0201
+Text00 = 1106246170706C69636174696F6E2F766E642E7761702E6D6D732D6D65737361676500AF84B4878C82986D3564613561396A6E3231306D61353671323040008D908919802B3432303737373737373737372F545950453D504C4D4E009641008A808E0218
+Text01 = 1E88058103083D5F83687474703A2F2F6D6D73637A2F3F6D3D6D35
+Coding = 8bit
+Folder = 3
+Length = 127
+Class = 1
+ReplySMSC = False
+RejectDuplicates = False
+ReplaceMessage = 0
+MessageReference = 0
diff --git a/test/data/gammu-dummy/sms/4/21 b/test/data/gammu-dummy/sms/4/21
new file mode 100644
index 0000000..8c40711
--- /dev/null
+++ b/test/data/gammu-dummy/sms/4/21
@@ -0,0 +1,25 @@
+; This file format was designed for Gammu and is compatible with Gammu+
+; See <http://www.gammu.org> for more info
+; Saved 20100114T220009 (Čt 14. leden 2010, 22:00:09 )
+
+[SMSBackup000]
+SMSC = "+420603052000"
+SMSCUnicode = 002B003400320030003600300033003000350032003000300030
+PDU = Deliver
+DateTime = 20100114T204216
+State = Read
+Number = "5574"
+NumberUnicode = 0035003500370034
+Name = ""
+NameUnicode = 
+UDH = 0B05040B8423F00003AA0202
+Text00 = 64613561396A6E3231306D61353671323000
+Coding = 8bit
+Folder = 3
+Length = 18
+Class = 1
+ReplySMSC = False
+RejectDuplicates = False
+ReplaceMessage = 0
+MessageReference = 0
+
diff --git a/test/data/gammu-dummy/todo/22 b/test/data/gammu-dummy/todo/22
new file mode 100644
index 0000000..6157ab1
--- /dev/null
+++ b/test/data/gammu-dummy/todo/22
@@ -0,0 +1,14 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+
+BEGIN:VTODO
+DTSTAMP:20080217T221408Z
+DTSTART:20080217
+DURATION:PT1S
+SUMMARY:Wammu Bug erforschen
+UID:4937 at thinkingrock.com.au
+DESCRIPTION:None
+LOCATION:None
+END:VTODO
+
+END:VCALENDAR
diff --git a/test/data/gammu-dummy/todo/3 b/test/data/gammu-dummy/todo/3
new file mode 100644
index 0000000..44b2302
--- /dev/null
+++ b/test/data/gammu-dummy/todo/3
@@ -0,0 +1,18 @@
+BEGIN:VCALENDAR
+VERSION:1.0
+BEGIN:VTODO
+SUMMARY:Gorusme
+DESCRIPTION:
+X-IRMC-LUID:00010001005E
+CLASS:PUBLIC
+DUE:
+COMPLETED:
+LAST-MODIFIED:20080312T115041Z
+DALARM:20080312T141000Z
+AALARM:20080312T141000Z
+CATEGORIES:MISCELLANEOUS
+PRIORITY:2
+STATUS:NEEDS ACTION
+X-SONYERICSSON-DST:0
+END:VTODO
+END:VCALENDAR
diff --git a/test/test_dummy.py b/test/test_dummy.py
index 5e4a780..e866636 100644
--- a/test/test_dummy.py
+++ b/test/test_dummy.py
@@ -39,7 +39,7 @@ logformat = none
 
 [smsd]
 commtimeout = 1
-debuglevel = 255
+debuglevel = 0
 logfile = stderr
 service = sql
 driver = sqlite3

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-gammu.git



More information about the Python-modules-commits mailing list