:orphan:
#################################################################
Step 4: Implement tests for the File Server component with pytest
#################################################################
Let's create a simple App with our **File Server** and **File Server Test** components.
Once the File Server is up and running, we'll execute the **test_file_server** LightningWork and when both calls are successful, we exit the App using ``self._exit``.
.. literalinclude:: ./app.py
:lines: 187-218
Simply create a ``test.py`` file with the following code and run ``pytest tests.py``:
.. literalinclude:: ./app.py
:lines: 221-226
To test the App in the cloud, create a ``cloud_test.py`` file with the following code and run ``pytest cloud_test.py``.
Under the hood, we are using the end-to-end testing `playwright `_ library, so you can interact with the UI.
.. literalinclude:: ./app.py
:lines: 229-
----
********************
Test the application
********************
Clone the Lightning repo and run the following command:
.. code-block:: bash
pytest docs/source-app/examples/file_server/app.py --capture=no -v
----
********
Tutorial
********
.. raw:: html
.. displayitem::
:header: Step 1: Implement the File Server general structure
:description: Put together the shape of the Component
:col_css: col-md-4
:button_link: file_server_step_1.html
:height: 180
:tag: Basic
.. displayitem::
:header: Step 2: Implement the File Server upload and list files methods
:description: Add the core functionalities to the Component
:col_css: col-md-4
:button_link: file_server_step_2.html
:height: 180
:tag: Basic
.. displayitem::
:header: Step 3: Implement a File Server Testing Component
:description: Create a Component to test the file server
:col_css: col-md-4
:button_link: file_server_step_3.html
:height: 180
:tag: Intermediate
.. raw:: html
----
******************
Find more examples
******************
.. raw:: html
.. Add callout items below this line
.. displayitem::
:header: Develop a DAG
:description: Create a dag pipeline
:col_css: col-md-4
:button_link: ../dag/dag.html
:height: 150
:tag: Intermediate
.. displayitem::
:header: Develop a Github Repo Script Runner
:description: Run any script on github in the cloud
:col_css: col-md-4
:button_link: ../github_repo_runner/github_repo_runner.html
:height: 150
:tag: Intermediate
.. displayitem::
:header: Develop a HPO Sweeper
:description: Train multiple models with different parameters
:col_css: col-md-4
:button_link: ../hpo/hpo.html
:height: 150
:tag: Intermediate
.. displayitem::
:header: Develop a Model Server
:description: Serve multiple models with different parameters
:col_css: col-md-4
:button_link: ../model_server_app/model_server_app.html
:height: 150
:tag: Intermediate
.. raw:: html