Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSaw-jan <saw.jan.grg3e@gmail.com>2022-10-11 13:27:17 +0300
committerSawjan Gurung <saw.jan.grg3e@gmail.com>2022-10-14 15:15:16 +0300
commite7906116e8dbf9c4f9d1223cab8a5f52c125cf28 (patch)
treeb503cc9b690120fa8995fc3f4009ad49df7b7efe /test
parentb528ce0721e5851a5037ccc2b22ecec915282e5b (diff)
fix python format
Diffstat (limited to 'test')
-rw-r--r--test/gui/shared/scripts/helpers/SyncHelper.py7
-rw-r--r--test/gui/shared/steps/steps.py86
-rw-r--r--test/gui/tst_editFiles/test.feature2
3 files changed, 80 insertions, 15 deletions
diff --git a/test/gui/shared/scripts/helpers/SyncHelper.py b/test/gui/shared/scripts/helpers/SyncHelper.py
index 04c5ce602..5f071cb9f 100644
--- a/test/gui/shared/scripts/helpers/SyncHelper.py
+++ b/test/gui/shared/scripts/helpers/SyncHelper.py
@@ -13,10 +13,13 @@ SYNC_STATUS = {
'UPDATE': 'UPDATE_VIEW',
}
-# default sync patterns for the initial sync (after adding account)
SYNC_PATTERNS = {
+ # default sync patterns for the initial sync (after adding account)
+ # the pattern can be of TWO types depending on the available resources (files/folders)
'initial': [
+ # when syncing empty account (hidden files are ignored)
[SYNC_STATUS['UPDATE'], SYNC_STATUS['OK']],
+ # when syncing an account that has some files/folders
[SYNC_STATUS['SYNC'], SYNC_STATUS['OK']],
],
'synced': [SYNC_STATUS['SYNC'], SYNC_STATUS['OK']],
@@ -61,7 +64,7 @@ def filterSyncMessages(messages):
return messages[start_idx:]
-def filterMessageForItem(messages, item):
+def filterMessagesForItem(messages, item):
filteredMsg = []
for msg in messages:
if msg.rstrip('/').endswith(item.rstrip('/')):
diff --git a/test/gui/shared/steps/steps.py b/test/gui/shared/steps/steps.py
index d735b4e66..811f5d3dc 100644
--- a/test/gui/shared/steps/steps.py
+++ b/test/gui/shared/steps/steps.py
@@ -11,6 +11,7 @@ import requests
import builtins
import shutil
+from objectmaphelper import RegularExpression
from pageObjects.AccountConnectionWizard import AccountConnectionWizard
from helpers.SetupClientHelper import *
from helpers.FilesHelper import buildConflictedRegex
@@ -28,7 +29,7 @@ from helpers.SyncHelper import (
getSyncedPattern,
generateSyncPatternFromMessages,
filterSyncMessages,
- filterMessageForItem,
+ filterMessagesForItem,
matchPatterns,
)
@@ -37,6 +38,7 @@ from helpers.SyncHelper import (
# if the IDE fails to reference the script, add the folder in Edit->Preferences->PyDev->Interpreters->Libraries
sys.path.append(os.path.realpath('../../../shell_integration/nautilus/'))
from syncstate import SocketConnect
+import functools
socketConnect = None
@@ -67,14 +69,12 @@ def updateSocketMessages(messages):
def clearSocketMessages(resource=''):
global socket_messages
if resource:
- print('---top---')
- print(socket_messages)
- resource_messages = set(filterMessageForItem(socket_messages, resource))
- socket_messages = [msg for msg in socket_messages if msg not in resource_messages]
+ resource_messages = set(filterMessagesForItem(socket_messages, resource))
+ socket_messages = [
+ msg for msg in socket_messages if msg not in resource_messages
+ ]
else:
socket_messages.clear()
- print('---low---')
- print(socket_messages)
def listenSyncStatusForItem(item, type='FOLDER'):
@@ -108,7 +108,12 @@ def waitForSyncToComplete(context, patterns=None, resource='', resourceType='FOL
def waitForInitialSyncToComplete(context):
- waitForSyncToComplete(context, getInitialSyncPatterns(), context.userData['currentUserSyncPath'], 'FOLDER')
+ waitForSyncToComplete(
+ context,
+ getInitialSyncPatterns(),
+ context.userData['currentUserSyncPath'],
+ 'FOLDER',
+ )
def hasSyncPattern(patterns):
@@ -119,7 +124,9 @@ def hasSyncPattern(patterns):
for idx, _ in enumerate(messages):
next = idx + 1
if next in range(len(messages)):
- actual_pattern = generateSyncPatternFromMessages(messages[idx : next + (len(pattern) - 1)])
+ actual_pattern = generateSyncPatternFromMessages(
+ messages[idx : next + (len(pattern) - 1)]
+ )
if matchPatterns(pattern, actual_pattern):
return True
# 100 milliseconds polling interval
@@ -258,15 +265,23 @@ def getSocketConnection():
# Using socket API to check file sync status
def hasSyncStatus(itemName, status):
sync_messages = readAndUpdateSocketMessages()
- sync_messages = filterMessageForItem(sync_messages, itemName)
+ sync_messages = filterMessagesForItem(sync_messages, itemName)
for line in sync_messages:
if line.startswith(status) and line.rstrip('/').endswith(itemName.rstrip('/')):
return True
return False
+def folderHasSyncStatus(folderName, status):
+ return hasSyncStatus('FOLDER', folderName, status)
+
+
+def fileHasSyncStatus(fileName, status):
+ return hasSyncStatus('FILE', fileName, status)
+
+
# useful for checking sync status such as 'error', 'ignore'
-# but not quit so reliable for checking 'ok' sync status
+# but not quite so reliable for checking 'ok' sync status
def waitForFileOrFolderToHaveSyncStatus(
context, resource, resourceType, status=SYNC_STATUS['OK'], timeout=None
):
@@ -280,7 +295,7 @@ def waitForFileOrFolderToHaveSyncStatus(
result = waitFor(
lambda: hasSyncStatus(resource, status),
timeout,
- )
+ )
if not result:
if status == SYNC_STATUS['ERROR']:
@@ -300,6 +315,53 @@ def waitForFileOrFolderToHaveSyncStatus(
)
+def waitForSyncToStart(context, resource, resourceType):
+ resource = join(context.userData['currentUserSyncPath'], resource)
+
+ hasStatusNOP = hasSyncStatus(resourceType.upper(), resource, SYNC_STATUS['NOP'])
+ hasStatusSYNC = hasSyncStatus(resourceType.upper(), resource, SYNC_STATUS['SYNC'])
+
+ if hasStatusSYNC:
+ return
+
+ try:
+ if hasStatusNOP:
+ waitForFileOrFolderToHaveSyncStatus(
+ context, resource, resourceType, SYNC_STATUS['SYNC']
+ )
+ else:
+ waitForFileOrFolderToHaveSyncStatus(
+ context,
+ resource,
+ resourceType,
+ SYNC_STATUS['SYNC'],
+ context.userData['minSyncTimeout'] * 1000,
+ )
+ except:
+ hasStatusNOP = hasSyncStatus(resourceType.upper(), resource, SYNC_STATUS['NOP'])
+ if hasStatusNOP:
+ raise Exception(
+ "Expected "
+ + resourceType
+ + " '"
+ + resource
+ + "' to have sync started but not."
+ )
+
+
+def waitForFileOrFolderToSync(context, resource, resourceType):
+ waitForSyncToStart(context, resource, resourceType)
+ waitForFileOrFolderToHaveSyncStatus(
+ context, resource, resourceType, SYNC_STATUS['OK']
+ )
+
+
+def waitForRootFolderToSync(context):
+ waitForFileOrFolderToSync(
+ context, context.userData['currentUserSyncPath'], 'folder'
+ )
+
+
def waitForFileOrFolderToHaveSyncError(context, resource, resourceType):
waitForFileOrFolderToHaveSyncStatus(
context, resource, resourceType, SYNC_STATUS['ERROR']
diff --git a/test/gui/tst_editFiles/test.feature b/test/gui/tst_editFiles/test.feature
index 37b2f1be6..9855a4e19 100644
--- a/test/gui/tst_editFiles/test.feature
+++ b/test/gui/tst_editFiles/test.feature
@@ -13,5 +13,5 @@ Feature: edit files
Given user "Alice" has uploaded file with content "ownCloud test text file 0" to "S@mpleFile!With,$pecial?Characters.txt" on the server
And user "Alice" has set up a client with default settings
When the user overwrites the file "S@mpleFile!With,$pecial?Characters.txt" with content "overwrite ownCloud test text file"
- When the user waits for file "S@mpleFile!With,$pecial?Characters.txt" to be synced
+ And the user waits for file "S@mpleFile!With,$pecial?Characters.txt" to be synced
Then as "Alice" the file "S@mpleFile!With,$pecial?Characters.txt" on the server should have the content "overwrite ownCloud test text file" \ No newline at end of file