root / pykoticon / trunk / tests / test.py @ 107

Revision 107, 2.6 kB (checked in by jerome, 18 years ago)

Now the network dialog is binary safe.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[90]1#! /usr/bin/env python
2# -*- coding: ISO-8859-15 -*-
3
4# PyKotIcon - an end-user companion for PyKota
5#
6# (c) 2003, 2004, 2005, 2006 Jerome Alet <alet@librelogiciel.com>
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
20#
21# $Id$
22#
23#
24
25import sys
26import os
[91]27import time
[90]28import xmlrpclib
29
30def main(arguments) :
31    """Main function."""
[100]32    printername = os.environ.get("PYKOTAPRINTERNAME", "Unknown")
33    username = os.environ.get("PYKOTAUSERNAME", "Unknown")
34    jobid = os.environ.get("PYKOTAJOBID", "Unknown")
35    jobtitle = os.environ.get("PYKOTATITLE", "Unknown")
36    jobsize = os.environ.get("PYKOTAPRECOMPUTEDJOBSIZE", "Unknown")
[103]37    billingcode = os.environ.get("PYKOTAJOBBILLING", "")
[100]38    if len(arguments) < 3 :
39        message = """Hello %(username)s,
40       
41You sent job %(jobid)s (%(jobtitle)s) to printer %(printername)s.
42
43This job seems to be %(jobsize)s pages long.
44
45Do you really want to print it ?""" % locals()
46        yesno = True
47    else :
48        message = "\n".join(arguments[2:])
49        yesno = False
50
51    server = xmlrpclib.ServerProxy("http://%s:%s" % (arguments[0], arguments[1]))
[107]52    #result = server.showDialog(xmlrpclib.Binary(message), yesno)
[106]53    #"""
[107]54    result = server.askDatas([xmlrpclib.Binary(v) for v in ["Username", "Password", "Billing code"]], \
[103]55                             ["username", "password", "billingcode"], \
[107]56                             {"username": xmlrpclib.Binary(username), \
57                              "password": xmlrpclib.Binary(""), \
58                              "billingcode" : xmlrpclib.Binary(billingcode)})
[106]59    #"""                         
[104]60    #server.quitApplication()
[106]61    if result["isValid"] :
[107]62        print "\n".join(["%s => '%s'" % (k, v.data) for (k, v) in result.items() if k != "isValid"])
[106]63    else :   
64        print "the end user closed the dialog box !"
[98]65       
[90]66if __name__ == "__main__" :
[100]67    if len(sys.argv) < 3 :
[93]68        sys.stderr.write("usage : %s printing_client_hostname_or_ip_address printing_client_TCPPort\n" % sys.argv[0])
69    else :   
70        main(sys.argv[1:])
Note: See TracBrowser for help on using the browser.