Able to connect to github
This commit is contained in:
parent
9c4441ec63
commit
a5c99c2d06
13 changed files with 313 additions and 0 deletions
0
test/losoup/__init__.py
Normal file
0
test/losoup/__init__.py
Normal file
121
test/losoup/conftest.py
Normal file
121
test/losoup/conftest.py
Normal file
|
@ -0,0 +1,121 @@
|
|||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
from losoup.file_operations.local_files import LocalFile
|
||||
from losoup.models import GithubSoftware, Asset
|
||||
from losoup.cvs.github import GithubConnector
|
||||
from losoup.cvs.github_settings import GithubSettings
|
||||
|
||||
current_dir = Path(__file__).parent.absolute()
|
||||
dotenv = current_dir / "test.env"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def github_settings():
|
||||
return GithubSettings(_env_file=dotenv)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def github_connector(github_settings):
|
||||
return GithubConnector(github_settings)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def keepassxc():
|
||||
return GithubSoftware(
|
||||
name="KeepassXC",
|
||||
owner="keepassxreboot",
|
||||
repo="keepassxc",
|
||||
version="2.7.9",
|
||||
folder="~/Softwares",
|
||||
filenameFormat="KeePassXC-{{version}}-x86_64.AppImage",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def latest_keepassxc():
|
||||
return GithubSoftware(
|
||||
name="KeepassXC",
|
||||
owner="keepassxreboot",
|
||||
repo="keepassxc",
|
||||
version="latest",
|
||||
folder="~/Softwares",
|
||||
filenameFormat="KeePassXC-{{version}}-x86_64.AppImage",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def keepassxc_not_present():
|
||||
return GithubSoftware(
|
||||
name="KeepassXC",
|
||||
owner="keepassxreboot",
|
||||
repo="keepassxc",
|
||||
version="2.79",
|
||||
folder="~/Softwares",
|
||||
filenameFormat="KeePassXC-{{version}}-x86_64.AppImage",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def local_file(keepassxc):
|
||||
return LocalFile(keepassxc)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def local_file_not_present(keepassxc_not_present):
|
||||
return LocalFile(keepassxc_not_present)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def software_to_update():
|
||||
return GithubSoftware(
|
||||
name="KeepassXC",
|
||||
owner="keepassxreboot",
|
||||
repo="keepassxc",
|
||||
version="2.8.1",
|
||||
folder="~/Softwares",
|
||||
filenameFormat="KeePassXC-{{version}}-x86_64.AppImage",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def software_up_to_date(keepassxc):
|
||||
return keepassxc
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def asset():
|
||||
return Asset(
|
||||
name="KeePassXC-2.7.9-x86_64.AppImage.DIGEST",
|
||||
url="https://api.github.com/repos/keepassxreboot/keepassxc/releases/assets/1747"
|
||||
"89149",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def keepassxc_digest():
|
||||
return GithubSoftware(
|
||||
name="KeepassXC digest",
|
||||
owner="keepassxreboot",
|
||||
repo="keepassxc",
|
||||
version="2.7.7",
|
||||
folder="~/Softwares",
|
||||
filenameFormat="KeePassXC-{{version}}-x86_64.AppImage.DIGEST",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def keepassxc_digest_file(keepassxc_digest):
|
||||
return LocalFile(keepassxc_digest)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def asset_to_write():
|
||||
return Asset(
|
||||
name="KeePassXC-2.7.7-x86_64.AppImage.DIGEST",
|
||||
url="https://api.github.com/repos/keepassxreboot/keepassxc/releases/assets/1747"
|
||||
"89149",
|
||||
content=b"2a868b681a8ec4e381ac14203aec3d80ff6fa7a535fa102265a3ec9329b4b846 Kee"
|
||||
b"PassXC-2.7.9-x86_64.AppImage\n",
|
||||
)
|
16
test/losoup/software.yaml
Normal file
16
test/losoup/software.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
software:
|
||||
- name: NextCloud
|
||||
cvs: github
|
||||
owner: nextcloud-releases
|
||||
repo: desktop
|
||||
version: latest
|
||||
folder: /home/stan/Softwares
|
||||
filenameFormat: KeePassXC-{{version}}-x86_64.AppImage
|
||||
|
||||
- name: KeePassXC
|
||||
cvs: giTHub
|
||||
owner: keepassxreboot
|
||||
repo: keepassxc
|
||||
version: latest
|
||||
folder: /home/stan/Softwares
|
||||
filenameFormat: Nextcloud-{{version}}-x86_64.AppImage
|
40
test/losoup/test_github_connector.py
Normal file
40
test/losoup/test_github_connector.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
def test_github_connector_is_initialized(github_connector):
|
||||
assert github_connector is not None
|
||||
assert github_connector.settings.token is not None
|
||||
|
||||
|
||||
def test_get_latest_release(github_connector, latest_keepassxc):
|
||||
release_assets = github_connector.get_release_assets_list(
|
||||
latest_keepassxc.release_url
|
||||
)
|
||||
assert len(release_assets) == 27
|
||||
|
||||
|
||||
def test_get_some_release(github_connector, keepassxc):
|
||||
release_asset_list = github_connector.get_release_assets_list(keepassxc.release_url)
|
||||
assert len(release_asset_list) == 27
|
||||
|
||||
|
||||
def test_get_release_asset(github_connector, keepassxc):
|
||||
release_asset = github_connector.get_release_asset(keepassxc)
|
||||
assert release_asset.name == keepassxc.filename
|
||||
|
||||
|
||||
def test_download_release_asset(github_connector, asset):
|
||||
release_asset_file = github_connector.download_release_asset(asset)
|
||||
assert len(release_asset_file) == 98
|
||||
assert (
|
||||
release_asset_file
|
||||
== b"2a868b681a8ec4e381ac14203aec3d80ff6fa7a535fa102265a3ec9329b4b846 KeePassX"
|
||||
b"C-2.7.9-x86_64.AppImage\n"
|
||||
)
|
||||
|
||||
|
||||
def test_download_software(github_connector, keepassxc_digest):
|
||||
release_asset_file = github_connector.download_software(keepassxc_digest)
|
||||
assert len(release_asset_file) == 98
|
||||
assert (
|
||||
release_asset_file
|
||||
== b"796c4c0ad20b124476195dacd7f86c75be51cace1c734174ec293c46f41c3d05 KeePassX"
|
||||
b"C-2.7.7-x86_64.AppImage\n"
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue