diff --git a/.github/workflows/manual_test.yml b/.github/workflows/manual_test.yml new file mode 100644 index 0000000..d27ad21 --- /dev/null +++ b/.github/workflows/manual_test.yml @@ -0,0 +1,53 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Build & Test + +on: + workflow_dispatch +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.10','3.11', '3.12'] + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Get IP + id: ip + run: echo "::set-output name=ip::$(curl -s https://api.ipify.org)" + + - name: Install BAC0 + run: | + pip install pandas + pip install rich + pip install influxdb_client[async] + pip install python-dotenv + pip install pytest + pip install pytest-cov + pip install pytest-asyncio + pip install coveralls + pip install bacpypes3 + pip install . + - name: Print Python version and installed packages + run: | + python --version + pip list + - name: Run simple script + run: | + python3 tests/manual_test.py + - name: Test with pytest + run: | + export RUNNER_IP=${{ steps.ip.outputs.ip }} + coverage run --source BAC0 -m pytest -v + coverage report + - name: Upload coverage data to coveralls.io + if: matrix.python-version == '3.12' + run: coveralls + env: + GITHUB_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + COVERALLS_FLAG_NAME: ${{ matrix.test-name }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 348370c..0733e81 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,6 +24,7 @@ jobs: - name: Get IP id: ip run: echo "::set-output name=ip::$(curl -s https://api.ipify.org)" + - name: Install BAC0 run: | pip install pandas @@ -36,6 +37,13 @@ jobs: pip install coveralls pip install bacpypes3 pip install . + - name: Print Python version and installed packages + run: | + python --version + pip list + - name: Run simple script + run: | + python3 tests/manual_test.py - name: Test with pytest run: | export RUNNER_IP=${{ steps.ip.outputs.ip }} diff --git a/tests/manual_test.py b/tests/manual_test.py new file mode 100644 index 0000000..7e884d5 --- /dev/null +++ b/tests/manual_test.py @@ -0,0 +1,21 @@ +import asyncio +import BAC0 +from BAC0.scripts.script_runner import run + +bacnet = None + +async def main(): + # Configuration + # # Initialize BACnet + print(BAC0.infos.__version__) + + async with BAC0.start(ip="127.0.0.1/24") as bacnet: + + await bacnet._discover() + lst = await bacnet._devices(_return_list=True) + print(lst) + + +if __name__ == "__main__": + #run(main, bacnet) # Run the script and deals with SIGINT and SIGTERM, useful for long time runnign scripts. + asyncio.run(main()) \ No newline at end of file