Efabless Logo

EF_AMUX0801

Mathieu drapeau

Alt text

Efabless Repository Integration tests

Description

This project allows to run several test cases on the Efabless Repository project. Those tests cover several features:

  • Authentication on Auth Services
  • New project creation
    • Public
    • Private
    • With README file
    • Mirroring from git URL
  • Project deletion
  • Update Settings
    • Ticket access level user
    • Collaboration access level user
    • Admin access level user
    • Commit access level user
  • SSH keys
    • Add SSH Key
    • Remove SSH Key
  • Git action
    • Cloning project via HTTP and SSH
    • Pushing to main and new branches
    • Pulling from project
  • Collaboration
    • Adding collaborator with different access level
    • Updating collaborator access levels
    • Removing a collaborator and verify its access
  • Issues
    • Creating as owner and collaborators
    • Assignment
    • Adding comments
    • Closing
    • Reopening
    • Deleting
    • Email notification to assignee
  • Pull Request
    • Create pull request for master and new branches
    • Create pull request as collaborator
    • Merging
    • Closing
    • Email verifications for pull request actions
  • Project Search
    • Public project
    • Private project
    • Collaborator project
  • Project Group
    • Create group
    • Add project to group
    • Add user to group
  • Project forking
    • Fork as owner
    • Fork collaborator project
    • Delete main project after forking
  • Web File Editor
    • Edit File and commit to master
    • Edit File and commit to new branch
  • Project Git Access
    • No Push to Deleted project
    • No Clone to Private project
    • Push changes with Collaborator access
    • Push changes with Admin access
    • Push changes with Commit access
    • Push changes with Ticket access
    • Push changes with group access

Prerequisites

In order to execute the integration test, you need to clone this repository:

 git clone git@vault.efabless.com:web-app/integration-tests.git

Create a virtual environment, you can use pycharm.

Then install the project requirements using this command:

pip install -r requirements.txt

Usage

In order to run test cases below users should be configured in the environment

Corporate user login details should added env_config.yaml file

    corporate:  username, password, id, public ssh key
    mailsurp:   api_key, inbox_id, username, password, id, public ssh key
    test_user:  username, password, id (user ssh key should not be configured)

To add your own auth credentials, add "private_element.yaml" to the resources/element folder (this is in .gitignore), and also add "--variable AUTH:private" to your command when you run it.

In order to run the full test suite, execute this command:

robot --include functional -L TRACE --variable ENV:local -d result testcases

In order to run test cases for particular module, execute this command:

robot --include functional -L TRACE --variable ENV:local -d result testcases\module_name

In order to run a single test case within a particular module, execute this command (you need the period at the end):

robot -L TRACE --listener RobotStackTracer --variable ENV:local --variable AUTH:corporate -d result -t "Collaborators Create New Issue" .

Mac-Specific Installation Note

  • When executing command above, if getting this error:

    Importing library 'SeleniumLibrary' failed: ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with LibreSSL 2.8.3. 
    

    ...try running this command (source https://stackoverflow.com/questions/76187256/importerror-urllib3-v2-0-only-supports-openssl-1-1-1-currently-the-ssl-modu )

    pip install urllib3==1.26.6 
    

Ubuntu-Specific Installation Note

  • When executing tests, if getting this error:

    Importing library 'robot.libraries.Dialogs' failed: ModuleNotFoundError: No module named 'tkinter'
    

    ...try running this command

     sudo apt-get install python3-tk
    

Framework Configuration

  • Test case files added as per module name mentioned in test plan
  • Page files are added as per pages mentioned in the application
  • Elements are not stored based on page files. Elements are stored based on functionalities
  • The "tmp" folder added to framework to store clone project repos in project path.
  • Mailslurp.py added to configure and use mailslurp mails for email validations
  • env_config.yaml file used to store all browser name, urls, login details
  • repository.yaml file used to store project, issue, group naming conventions
  • import file added where all necessary libraries and variables added

Developer resources

The integration tests are using Robot framework in order to exercise the Efabless Repository. In order to get familiar to the framework, we strongly suggest to read this tutorial and the framework website.

The current project is structured in different directories:

  • testcases/: contains the .robot files which are the different tests to be run
  • resources/config: contains the environment configuration variables used depending on the provided parameter (--variable ENV:<>) when running robot.
  • resources/element: variables used by testcases, organized by context
  • keywords/: library of functions used by testcases

To have an initial single test, please use this command and verify that the system is working as expected: sh

robot -L TRACE --variable ENV:local --variable AUTH:linkedin -d result --test "Verify user able to search any public project by name" testcases/

Summary

Catalog ID

EF_AMUX0801

Provider

Community

Vendor

Mathieu drapeau

Node

80nm

Foundry

Skywater

Category

A/D Converter

Licensing

Info

Commercial (Paid)

Certification

Stage

Prototype

Maturity

Verified