ยปCore Development>Code coverage>Mac/Demo/example1/dnslookup-1.py

Python code coverage for Mac/Demo/example1/dnslookup-1.py

#countcontent
1n/a"""Sample program performing domain name lookups and showing off EasyDialogs,
2n/aRes and Dlg in the process"""
3n/a
4n/aimport EasyDialogs
5n/afrom Carbon import Res
6n/afrom Carbon import Dlg
7n/aimport socket
8n/aimport string
9n/aimport macresource
10n/a#
11n/a# Definitions for our resources
12n/aID_MAIN=512
13n/a
14n/aITEM_LOOKUP_ENTRY=1
15n/aITEM_RESULT=2
16n/aITEM_LOOKUP_BUTTON=3
17n/aITEM_QUIT_BUTTON=4
18n/a
19n/adef main():
20n/a """Main routine: open resource file, call dialog handler"""
21n/a macresource.need("DLOG", ID_MAIN, "dnslookup-1.rsrc")
22n/a do_dialog()
23n/a
24n/adef do_dialog():
25n/a """Post dialog and handle user interaction until quit"""
26n/a my_dlg = Dlg.GetNewDialog(ID_MAIN, -1)
27n/a while 1:
28n/a n = Dlg.ModalDialog(None)
29n/a if n == ITEM_LOOKUP_BUTTON:
30n/a tp, h, rect = my_dlg.GetDialogItem(ITEM_LOOKUP_ENTRY)
31n/a txt = Dlg.GetDialogItemText(h)
32n/a
33n/a tp, h, rect = my_dlg.GetDialogItem(ITEM_RESULT)
34n/a Dlg.SetDialogItemText(h, dnslookup(txt))
35n/a elif n == ITEM_QUIT_BUTTON:
36n/a break
37n/a
38n/adef dnslookup(str):
39n/a """ Perform DNS lookup on str. If first character of digit is numeric,
40n/a assume that str contains an IP address. Otherwise, assume that str
41n/a contains a hostname."""
42n/a if str == '': str = ' '
43n/a if str[0] in string.digits:
44n/a try:
45n/a value = socket.gethostbyaddr(str)[0]
46n/a except:
47n/a value = 'Lookup failed'
48n/a else:
49n/a try:
50n/a value = socket.gethostbyname(str)
51n/a except:
52n/a value = 'Lookup failed'
53n/a return value
54n/a
55n/amain()