File: validate.py

package info (click to toggle)
py-xmlrpc 0.8.7-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 340 kB
  • ctags: 506
  • sloc: ansic: 5,321; python: 660; makefile: 102; sh: 14
file content (98 lines) | stat: -rwxr-xr-x 1,956 bytes parent folder | download
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
#!/usr/bin/python -O
#
# A server which CAN pass the compliancy test at validator.xmlrpc.com
#
#


import sys
sys.path.append('..')
import xmlrpc
import traceback


PORT = 23456


def main():
	METHODS = {
		'validator1.arrayOfStructsTest'		: arrayOfStructsTest,
		'validator1.countTheEntities'		: countTheEntities,
		'validator1.easyStructTest'		: easyStructTest,
		'validator1.echoStructTest'		: echoStructTest,
		'validator1.manyTypesTest'		: manyTypesTest,
		'validator1.moderateSizeArrayCheck'	: moderateSizeArrayCheck,
		'validator1.simpleStructReturnTest'	: simpleStructReturnTest,
		'validator1.nestedStructTest'		: nestedStructTest
	}
	s = xmlrpc.server()
	s.addMethods(METHODS)
	s.bindAndListen(PORT)
	while 1:
		try:
			s.work()
		except:
			traceback.print_exc()


def arrayOfStructsTest(server, source, name, args):
	s = 0
	for dict in args[0]:
		s = s + dict['curly']
	return s


def easyStructTest(server, source, name, args):
	dict = args[0]
	s = 0
	for key in ('moe', 'larry', 'curly'):
		s = s + dict[key]
	return s


def echoStructTest(server, source, name, args):
	return args[0]


def countTheEntities(server, source, name, args):
	specialChars = {
		'>'	: 'ctRightAngleBrackets',
		'<'	: 'ctLeftAngleBrackets',
		'&'	: 'ctAmpersands',
		'\''	: 'ctApostrophes',
		'"'	: 'ctQuotes'
	}
	sums = {}
	for k in specialChars.values():
		sums[k] = 0
	s = args[0]
	for c in s:
		if specialChars.has_key(c):
			tag = specialChars[c]
			sums[tag] = sums[tag] + 1
	return sums

def manyTypesTest(server, source, name, args):
	return args


def moderateSizeArrayCheck(server, source, name, args):
	array = args[0]
	return array[0] + array[-1]


def nestedStructTest(server, source, name, args):
	dict = args[0]['2000']['04']['01']
	return dict['moe'] + dict['curly'] + dict['larry']


def simpleStructReturnTest(server, source, name, args):
	num = args[0]
	return {
		'times10'	: num*10,
		'times100'	: num*100,
		'times1000'	: num*1000
	}


main()