#!@PYTHON@ # This file is part of GNUnet. # (C) 2010 Christian Grothoff (and other contributing authors) # # GNUnet is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published # by the Free Software Foundation; either version 2, or (at your # option) any later version. # # GNUnet is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNUnet; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # Testcase for file-sharing command-line tools (recursive publishing & download) import pexpect import os import signal import re os.system ('rm -rf /tmp/gnunet-test-fs-py-rec/') os.system ('gnunet-arm -sq -c test_gnunet_fs_rec_data.conf') os.system ('tar xfz test_gnunet_fs_rec_data.tgz') try: pub = pexpect.spawn ('gnunet-publish -c test_gnunet_fs_rec_data.conf -d -k testdir dir/') pub.expect ('Publishing `dir/\' done.\r') pub.expect ("URI is `gnunet://fs/chk/M2I80IUI2DM4L6G93KL15AHAO7MIMS5JKP1L3LQFVN50CT7AKRQDSF594BC9TD97JJIT3COF6B5O524CMIOG9EJO8UK1560M54JRI70.GBRE5M4QJ7NA0QIN88FMSC78NNOQMVT5DH8FP37OIR5SGGHFEB9ESDNBRKT9PFE9N2GOI81UN8GGBR6KH9GRTV1T04JFSJURF2U0VE8.20182'.") pub.expect (pexpect.EOF) down = pexpect.spawn ('gnunet-download -c test_gnunet_fs_rec_data.conf -R -o rdir.gnd gnunet://fs/chk/M2I80IUI2DM4L6G93KL15AHAO7MIMS5JKP1L3LQFVN50CT7AKRQDSF594BC9TD97JJIT3COF6B5O524CMIOG9EJO8UK1560M54JRI70.GBRE5M4QJ7NA0QIN88FMSC78NNOQMVT5DH8FP37OIR5SGGHFEB9ESDNBRKT9PFE9N2GOI81UN8GGBR6KH9GRTV1T04JFSJURF2U0VE8.20182') down.expect (re.compile ("Downloading `rdir.gnd\' done \(.*\).\r")); down.expect (pexpect.EOF); dir = pexpect.spawn ('gnunet-directory -c test_gnunet_fs_rec_data.conf rdir/a.gnd') dir.expect (re.compile ("Directory `a/' meta data:")); dir.expect (re.compile ("Directory `a/' contents:")); dir.expect (re.compile ("COPYING (.*)")); dir.expect (re.compile ("INSTALL (.*)")); dir.expect (pexpect.EOF) os.system ('rm -r rdir/b.gnd rdir/a.gnd') if (0 != os.system ("diff -r dir rdir")): raise Exception ("Unexpected difference between source directory and downloaded result") finally: os.system ('gnunet-arm -c test_gnunet_fs_rec_data.conf -eq') os.system ('rm -r dir rdir rdir.gnd') os.system ('rm -rf /tmp/gnunet-test-fs-py-rec/')