summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMiguel Jacq <mig@mig5.net>2019-03-08 12:54:10 +1100
committerMiguel Jacq <mig@mig5.net>2019-03-08 12:54:10 +1100
commit04fd65de11209e201fa39638b978c30198fc8553 (patch)
treea61ab2a513cf043ee7b47a2b68b91d4faac7306c /tests
parent3af05dcc2041026380a71b8aed1af9af849416a5 (diff)
downloadonionshare-04fd65de11209e201fa39638b978c30198fc8553.tar.gz
onionshare-04fd65de11209e201fa39638b978c30198fc8553.zip
On a folder name collision, make sure we update the self.receive_mode_dir attribute after creating a unique folder with a suffix. Adjust Receive Mode tests to test for this
Diffstat (limited to 'tests')
-rw-r--r--tests/GuiReceiveTest.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/GuiReceiveTest.py b/tests/GuiReceiveTest.py
index 8a03283e..f34c955b 100644
--- a/tests/GuiReceiveTest.py
+++ b/tests/GuiReceiveTest.py
@@ -5,7 +5,7 @@ from PyQt5 import QtCore, QtTest
from .GuiBaseTest import GuiBaseTest
class GuiReceiveTest(GuiBaseTest):
- def upload_file(self, public_mode, file_to_upload, expected_basename):
+ def upload_file(self, public_mode, file_to_upload, expected_basename, identical_files_at_once=False):
'''Test that we can upload the file'''
files = {'file[]': open(file_to_upload, 'rb')}
if not public_mode:
@@ -13,6 +13,9 @@ class GuiReceiveTest(GuiBaseTest):
else:
path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port)
response = requests.post(path, files=files)
+ if identical_files_at_once:
+ # Send a duplicate upload to test for collisions
+ response = requests.post(path, files=files)
QtTest.QTest.qWait(2000)
# Make sure the file is within the last 10 seconds worth of filenames
@@ -20,7 +23,10 @@ class GuiReceiveTest(GuiBaseTest):
now = datetime.now()
for i in range(10):
date_dir = now.strftime("%Y-%m-%d")
- time_dir = now.strftime("%H.%M.%S")
+ if identical_files_at_once:
+ time_dir = now.strftime("%H.%M.%S-1")
+ else:
+ time_dir = now.strftime("%H.%M.%S")
receive_mode_dir = os.path.join(self.gui.common.settings.get('data_dir'), date_dir, time_dir)
expected_filename = os.path.join(receive_mode_dir, expected_basename)
if os.path.exists(expected_filename):
@@ -119,6 +125,9 @@ class GuiReceiveTest(GuiBaseTest):
self.counter_incremented(self.gui.receive_mode, 3)
self.upload_file(public_mode, '/tmp/testdir/test', 'test')
self.counter_incremented(self.gui.receive_mode, 4)
+ # Test uploading the same file twice at the same time, and make sure no collisions
+ self.upload_file(public_mode, '/tmp/test.txt', 'test.txt', True)
+ self.counter_incremented(self.gui.receive_mode, 6)
self.uploading_zero_files_shouldnt_change_ui(self.gui.receive_mode, public_mode)
self.history_indicator(self.gui.receive_mode, public_mode)
self.server_is_stopped(self.gui.receive_mode, False)