File: filesystem-test.py

package info (click to toggle)
python-gammu 0.26-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 648 kB
  • ctags: 643
  • sloc: ansic: 9,254; python: 1,770; makefile: 77; sh: 8
file content (211 lines) | stat: -rw-r--r-- 6,060 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
#!/usr/bin/env python
#
# This file should provide me with a test frame for the filesystem
# functions. It can't be run automatically, but you should be able
# to decide, wheather the output looks sensible
#
# BEWARE - the test WILL TOUCH AND WRITE FILESYSTEM!!
#
# Matthias Blaesing <matthias.blaesing@rwth-aachen.de>
#
# I asume you call the script from the directory were it lays and
# have the grafic there and you have write permission there and that
# there is a file called cgi.jpg to be used as test file
#
# READY:
# - DeleteFile
# - AddFilePart
# - GetFilePart
# - GetNextRootFolder
# - GetNextFileFolder
# - GetFolderListing
# - SetFileAttributes
# - DeleteFolder
# - GetFileSystemStatus
# - AddFolder

import gammu
import os
import datetime

sm = gammu.StateMachine()
sm.ReadConfig()
sm.Init()

# Check GetFileSystemStatus
print "Expection: Info about filesystem usage"
try:
	fs_info = sm.GetFileSystemStatus()
	fs_info["Total"] = fs_info["Free"] + fs_info["Used"]
	print "Used: %(Used), Free: %(Free), Total: %(Total)" % fs_info
except gammu.ERR_NOTSUPPORTED:
	print "You will have to live without this knowledge"

# Check DeleteFile
print "\n\nExpection: Deleting cgi.jpg from memorycard"
try:
	sm.DeleteFile(u"b:/cgi.jpg")
except gammu.ERR_FILENOTEXIST:
	print "Oh well - we copy it now ;-) (You SHOULD read this)"

# Check AddFilePart
print "\n\nExpection: Put cgi.jpg onto Memorycard on phone"
file_handle = open("./data/cgi.jpg", "r")
file_stat = os.stat("./data/cgi.jpg")
ttime = datetime.datetime.fromtimestamp(file_stat[8])
file_f = {
"ID_FullName": "b:",
"Name": u"cgi.jpg",
"Modified": ttime,
"Folder": 0,
"Level": 1,
"Used": file_stat[6],
"Buffer": file_handle.read(),
"Type": "Other",
"Protected": 0,
"ReadOnly": 0,
"Hidden": 0,
"System": 0,
"Handle": 0,
"Pos": 0,
"Finished": 0
}
while (not file_f["Finished"]):
	file_f = sm.AddFilePart(file_f)


# Check GetFilePart
print "\n\nExpection: Get cgi.jpg from memorycard and write it as test.jpg"
f = file('./data/test.jpg', 'w')
file_f = {
	"ID_FullName": "b:/cgi.jpg",
	"Finished": 0
}
while (not file_f["Finished"]):
	file_f = sm.GetFilePart(file_f)
f.write(file_f["Buffer"])
f.flush();

# Check correct transfer
print "\n\nExpection: test.jpg and cgi.jpg to be the same"
f1 = open("./data/cgi.jpg", "r")
f2 = open("./data/test.jpg", "r")
if(f1.read() == f2.read()):
	print "Same files"
else:
	print "Files differ!"

os.remove("test.jpg")

# Check GetNextRootFolder
print "\n\nExpection: Root Folder List"
file = sm.GetNextRootFolder(u"");
while 1:
	print file["ID_FullName"] + " - " + file["Name"]
	try:
		file = sm.GetNextRootFolder(file["ID_FullName"])
	except gammu.ERR_EMPTY:
		break


# Check GetNextFileFolder
print "\n\nExpection: Info for a file of the phone (cgi.jpg)"
file_f = sm.GetNextFileFolder(1)
while 1:
	if(file_f["Name"] != "cgi.jpg"):
		file_f = sm.GetNextFileFolder(0)
	else:
		attribute = ""
		if file_f["Protected"]:
			attribute = attribute + "P"
		if file_f["ReadOnly"]:
			attribute = attribute + "R"
		if file_f["Hidden"]:
			attribute = attribute + "H"
		if file_f["System"]:
			attribute = attribute + "S"
		print "ID:         " + file_f["ID_FullName"] + "\n" + \
		      "Name:       " + file_f["Name"] + "\n" + \
		      "Folder:     " + str(file_f["Folder"]) + "\n" + \
		      "Used:       " + str(file_f["Used"]) + "\n" + \
		      "Modified:   " + file_f["Modified"].strftime("%x %X") + "\n" + \
		      "Type:       " + file_f["Type"] + "\n" + \
		      "Level:      " + str(file_f["Level"]) + "\n" + \
		      "Attribute:  " + attribute

		break

# Check SetFileAttributes
# Protected is spared, as my mobile nokia 6230i says it's unsupported
print "\n\nExpection: Modifying attributes (readonly=1, protected=0, system=1, hidden=1)"
sm.SetFileAttributes(u"b:/cgi.jpg",1,0,1,1)

# Check GetFolderListing
print "\n\nExpection: Listing of cgi.jpg's properties"
file_f = sm.GetFolderListing(u"b:", 1)
while 1:
	if(file_f["Name"] != "cgi.jpg"):
		file_f = sm.GetFolderListing(u"b:", 0)
	else:
		attribute = ""
		if file_f["Protected"]:
			attribute = attribute + "P"
		if file_f["ReadOnly"]:
			attribute = attribute + "R"
		if file_f["Hidden"]:
			attribute = attribute + "H"
		if file_f["System"]:
			attribute = attribute + "S"
		print "ID:         " + file_f["ID_FullName"] + "\n" + \
		      "Name:       " + file_f["Name"] + "\n" + \
		      "Folder:     " + str(file_f["Folder"]) + "\n" + \
		      "Used:       " + str(file_f["Used"]) + "\n" + \
		      "Modified:   " + file_f["Modified"].strftime("%x %X") + "\n" + \
		      "Type:       " + file_f["Type"] + "\n" + \
		      "Level:      " + str(file_f["Level"]) + "\n" + \
		      "Attribute:  " + attribute

		break

# Check DeleteFile
print "\n\nExpection: Deletion of cgi.jpg from memorycard"
try:
	sm.DeleteFile(u"b:/cgi.jpg")
	print "Deleted"
except gammu.ERR_FILENOTEXIST:
	print "Something is wrong ..."

# Check AddFolder
print "\n\nExpection: Creation of a folder on the memorycard \"42alpha\""
file_f = sm.AddFolder(u"b:", u"42alpha")

# Check GetFolderListing again *wired*
print "\n\nExpection: Print properties of newly created folder"
file_f = sm.GetFolderListing(u"b:", 1)
while 1:
	if(file_f["Name"] != "42alpha"):
		file_f = sm.GetFolderListing(u"b:", 0)
	else:
		attribute = ""
		if file_f["Protected"]:
			attribute = attribute + "P"
		if file_f["ReadOnly"]:
			attribute = attribute + "R"
		if file_f["Hidden"]:
			attribute = attribute + "H"
		if file_f["System"]:
			attribute = attribute + "S"
		print "ID:         " + file_f["ID_FullName"] + "\n" + \
		      "Name:       " + file_f["Name"] + "\n" + \
		      "Folder:     " + str(file_f["Folder"]) + "\n" + \
		      "Used:       " + str(file_f["Used"]) + "\n" + \
		      "Modified:   " + file_f["Modified"].strftime("%x %X") + "\n" + \
		      "Type:       " + file_f["Type"] + "\n" + \
		      "Level:      " + str(file_f["Level"]) + "\n" + \
		      "Attribute:  " + attribute

		break

# Check DeleteFolder
print "\n\nExpection: Deletion of previously created folder \"42alpha\""
sm.DeleteFolder(u"b:/42alpha")