File: insertclip.py

package info (click to toggle)
kdenlive 25.12.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 125,932 kB
  • sloc: cpp: 206,733; xml: 11,858; python: 1,139; ansic: 1,054; javascript: 578; sh: 389; makefile: 15
file content (73 lines) | stat: -rwxr-xr-x 3,009 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python3

# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2016 Microsoft Corporation. All rights reserved.
# SPDX-FileCopyrightText: 2021-2022 Harald Sitter <sitter@kde.org>
# SPDX-FileCopyrightText: 2025 Jean-Baptiste Mardelle <jb@kdenlive.org>

import unittest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
from appium.options.common.base import AppiumOptions
import selenium.common.exceptions
from selenium.webdriver.support.ui import WebDriverWait


class SimpleKdenliveTests(unittest.TestCase):

    @classmethod
    def setUpClass(self):
        options = AppiumOptions()
        # The app capability may be a command line or a desktop file id.
        options.set_capability("app", "org.kde.kdenlive.desktop")
        options.set_capability("args", "--no-welcome")

        # Boilerplate, always the same
        self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4723', options=options)
        # Set a timeout for waiting to find elements. If elements cannot be found
        # in time we'll get a test failure. This should be somewhat long so as to
        # not fall over when the system is under load, but also not too long that
        # the test takes forever.
        self.driver.implicitly_wait = 10

    @classmethod
    def tearDownClass(self):
        # Make sure to terminate the driver again, lest it dangles.
        self.driver.quit()

    def setUp(self):
        wait = WebDriverWait(self.driver, 20)

        #wait.until(lambda x: self.getresults() == '0')

    def getStatusText(self):
        displaytext = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID,
        value="QApplication.MainWindow#1.QStatusBar.StatusBarMessageLabel.FlashLabel.QLabel").text
        return displaytext

    def assertResult(self, actual, expected):
        wait = WebDriverWait(self.driver, 20)
        try:
            wait.until(lambda x: self.getStatusText() == expected)
        except selenium.common.exceptions.TimeoutException:
            pass
        self.assertEqual(self.getStatusText(), expected)

    def test_initialize(self):
        # Close welcome screen
        self.driver.find_element(by=AppiumBy.NAME, value="Start Editing").click()

        self.driver.find_element(by=AppiumBy.NAME, value="Add Color Clip…").click()
        self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="QApplication.ColorClip_UI.buttonBox.QPushButton").click()
        # insert clip in timeline
        self.driver.find_element(by=AppiumBy.NAME, value="Insert Clip Zone in Timeline").click()
        # insert clip in timeline again
        self.driver.find_element(by=AppiumBy.NAME, value="Insert Clip Zone in Timeline").click()
        # select all in Bin
        self.driver.find_element(by=AppiumBy.NAME, value="Select All").click()
        #wait = WebDriverWait(self.driver, 2)
        self.assertResult(self.getStatusText(), "2 items selected (00:10:00) |")


if __name__ == '__main__':
    unittest.main()