mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-30 18:27:18 +00:00
Compare commits
2 Commits
931ff9bd98
...
263c53bac5
Author | SHA1 | Date | |
---|---|---|---|
263c53bac5 | |||
6743f1d62a |
@ -20,6 +20,14 @@ ahriman.core.formatters.build\_printer module
|
|||||||
:no-undoc-members:
|
:no-undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
ahriman.core.formatters.configuration\_paths\_printer module
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
|
.. automodule:: ahriman.core.formatters.configuration_paths_printer
|
||||||
|
:members:
|
||||||
|
:no-undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
ahriman.core.formatters.configuration\_printer module
|
ahriman.core.formatters.configuration\_printer module
|
||||||
-----------------------------------------------------
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
@ -17,3 +17,22 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
from ahriman.web.schemas.aur_package_schema import AURPackageSchema
|
||||||
|
from ahriman.web.schemas.auth_schema import AuthSchema
|
||||||
|
from ahriman.web.schemas.counters_schema import CountersSchema
|
||||||
|
from ahriman.web.schemas.error_schema import ErrorSchema
|
||||||
|
from ahriman.web.schemas.internal_status_schema import InternalStatusSchema
|
||||||
|
from ahriman.web.schemas.log_schema import LogSchema
|
||||||
|
from ahriman.web.schemas.login_schema import LoginSchema
|
||||||
|
from ahriman.web.schemas.logs_schema import LogsSchema
|
||||||
|
from ahriman.web.schemas.oauth2_schema import OAuth2Schema
|
||||||
|
from ahriman.web.schemas.package_name_schema import PackageNameSchema
|
||||||
|
from ahriman.web.schemas.package_names_schema import PackageNamesSchema
|
||||||
|
from ahriman.web.schemas.package_properties_schema import PackagePropertiesSchema
|
||||||
|
from ahriman.web.schemas.package_schema import PackageSchema
|
||||||
|
from ahriman.web.schemas.package_status_schema import PackageStatusSimplifiedSchema, PackageStatusSchema
|
||||||
|
from ahriman.web.schemas.pgp_key_id_schema import PGPKeyIdSchema
|
||||||
|
from ahriman.web.schemas.pgp_key_schema import PGPKeySchema
|
||||||
|
from ahriman.web.schemas.remote_schema import RemoteSchema
|
||||||
|
from ahriman.web.schemas.search_schema import SearchSchema
|
||||||
|
from ahriman.web.schemas.status_schema import StatusSchema
|
||||||
|
@ -22,9 +22,7 @@ import aiohttp_apispec # type: ignore[import]
|
|||||||
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
||||||
|
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, PackageNamesSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.package_names_schema import PackageNamesSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,10 +22,7 @@ import aiohttp_apispec # type: ignore[import]
|
|||||||
from aiohttp.web import HTTPBadRequest, HTTPNoContent, HTTPNotFound, Response, json_response
|
from aiohttp.web import HTTPBadRequest, HTTPNoContent, HTTPNotFound, Response, json_response
|
||||||
|
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, PGPKeyIdSchema, PGPKeySchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.pgp_key_id_schema import PGPKeyIdSchema
|
|
||||||
from ahriman.web.schemas.pgp_key_schema import PGPKeySchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,9 +22,7 @@ import aiohttp_apispec # type: ignore[import]
|
|||||||
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
||||||
|
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, PackageNamesSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.package_names_schema import PackageNamesSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,9 +22,7 @@ import aiohttp_apispec # type: ignore[import]
|
|||||||
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
||||||
|
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, PackageNamesSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.package_names_schema import PackageNamesSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,9 +22,7 @@ import aiohttp_apispec # type: ignore[import]
|
|||||||
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
from aiohttp.web import HTTPBadRequest, HTTPNoContent
|
||||||
|
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, PackageNamesSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.package_names_schema import PackageNamesSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,10 +25,7 @@ from collections.abc import Callable
|
|||||||
from ahriman.core.alpm.remote import AUR
|
from ahriman.core.alpm.remote import AUR
|
||||||
from ahriman.models.aur_package import AURPackage
|
from ahriman.models.aur_package import AURPackage
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.aur_package_schema import AURPackageSchema
|
from ahriman.web.schemas import AURPackageSchema, AuthSchema, ErrorSchema, SearchSchema
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.search_schema import SearchSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,8 +22,7 @@ import aiohttp_apispec # type: ignore[import]
|
|||||||
from aiohttp.web import HTTPNoContent
|
from aiohttp.web import HTTPNoContent
|
||||||
|
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,11 +24,7 @@ from aiohttp.web import HTTPBadRequest, HTTPNoContent, HTTPNotFound, Response, j
|
|||||||
from ahriman.core.exceptions import UnknownPackageError
|
from ahriman.core.exceptions import UnknownPackageError
|
||||||
from ahriman.models.log_record_id import LogRecordId
|
from ahriman.models.log_record_id import LogRecordId
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, LogSchema, LogsSchema, PackageNameSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.log_schema import LogSchema
|
|
||||||
from ahriman.web.schemas.logs_schema import LogsSchema
|
|
||||||
from ahriman.web.schemas.package_name_schema import PackageNameSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,10 +25,7 @@ from ahriman.core.exceptions import UnknownPackageError
|
|||||||
from ahriman.models.build_status import BuildStatusEnum
|
from ahriman.models.build_status import BuildStatusEnum
|
||||||
from ahriman.models.package import Package
|
from ahriman.models.package import Package
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, PackageNameSchema, PackageStatusSchema, PackageStatusSimplifiedSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.package_name_schema import PackageNameSchema
|
|
||||||
from ahriman.web.schemas.package_status_schema import PackageStatusSchema, PackageStatusSimplifiedSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,9 +22,7 @@ import aiohttp_apispec # type: ignore[import]
|
|||||||
from aiohttp.web import HTTPNoContent, Response, json_response
|
from aiohttp.web import HTTPNoContent, Response, json_response
|
||||||
|
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, PackageStatusSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.package_status_schema import PackageStatusSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,10 +26,7 @@ from ahriman.models.build_status import BuildStatusEnum
|
|||||||
from ahriman.models.counters import Counters
|
from ahriman.models.counters import Counters
|
||||||
from ahriman.models.internal_status import InternalStatus
|
from ahriman.models.internal_status import InternalStatus
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema, InternalStatusSchema, StatusSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.schemas.internal_status_schema import InternalStatusSchema
|
|
||||||
from ahriman.web.schemas.status_schema import StatusSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,9 +23,7 @@ from aiohttp.web import HTTPFound, HTTPMethodNotAllowed, HTTPUnauthorized
|
|||||||
|
|
||||||
from ahriman.core.auth.helpers import remember
|
from ahriman.core.auth.helpers import remember
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
from ahriman.web.schemas import ErrorSchema, LoginSchema, OAuth2Schema
|
||||||
from ahriman.web.schemas.login_schema import LoginSchema
|
|
||||||
from ahriman.web.schemas.oauth2_schema import OAuth2Schema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
@ -66,7 +64,11 @@ class LoginView(BaseView):
|
|||||||
HTTPMethodNotAllowed: in case if method is used, but OAuth is disabled
|
HTTPMethodNotAllowed: in case if method is used, but OAuth is disabled
|
||||||
HTTPUnauthorized: if case of authorization error
|
HTTPUnauthorized: if case of authorization error
|
||||||
"""
|
"""
|
||||||
from ahriman.core.auth.oauth import OAuth
|
try:
|
||||||
|
from ahriman.core.auth.oauth import OAuth
|
||||||
|
except ImportError:
|
||||||
|
# no aioauth library found
|
||||||
|
raise HTTPMethodNotAllowed(self.request.method, ["POST"])
|
||||||
|
|
||||||
oauth_provider = self.validator
|
oauth_provider = self.validator
|
||||||
if not isinstance(oauth_provider, OAuth): # there is actually property, but mypy does not like it anyway
|
if not isinstance(oauth_provider, OAuth): # there is actually property, but mypy does not like it anyway
|
||||||
|
@ -23,8 +23,7 @@ from aiohttp.web import HTTPFound, HTTPUnauthorized
|
|||||||
|
|
||||||
from ahriman.core.auth.helpers import check_authorized, forget
|
from ahriman.core.auth.helpers import check_authorized, forget
|
||||||
from ahriman.models.user_access import UserAccess
|
from ahriman.models.user_access import UserAccess
|
||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema, ErrorSchema
|
||||||
from ahriman.web.schemas.error_schema import ErrorSchema
|
|
||||||
from ahriman.web.views.base import BaseView
|
from ahriman.web.views.base import BaseView
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,6 +88,30 @@ def get_package_status_extended(package: Package) -> dict[str, Any]:
|
|||||||
return {"status": BuildStatus().view(), "package": package.view()}
|
return {"status": BuildStatus().view(), "package": package.view()}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.helpers.register
|
||||||
|
def import_error(package: str, components: list[str], mocker: MockerFixture) -> MagicMock:
|
||||||
|
"""
|
||||||
|
mock import error
|
||||||
|
|
||||||
|
Args:
|
||||||
|
package(str): package name to import
|
||||||
|
components(list[str]): component to import if any (e.g. from ... import ...)
|
||||||
|
mocker(MockerFixture): mocker object
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
MagicMock: mocked object
|
||||||
|
"""
|
||||||
|
import builtins
|
||||||
|
_import = builtins.__import__
|
||||||
|
|
||||||
|
def test_import(name: str, globals: Any, locals: Any, from_list: list[str], level: Any):
|
||||||
|
if name == package and (not components or any(component in from_list for component in components)):
|
||||||
|
raise ImportError
|
||||||
|
return _import(name, globals, locals, from_list, level)
|
||||||
|
|
||||||
|
return mocker.patch.object(builtins, "__import__", test_import)
|
||||||
|
|
||||||
|
|
||||||
# generic fixtures
|
# generic fixtures
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def aur_package_ahriman() -> AURPackage:
|
def aur_package_ahriman() -> AURPackage:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from ahriman.web.schemas.auth_schema import AuthSchema
|
from ahriman.web.schemas import AuthSchema
|
||||||
|
|
||||||
|
|
||||||
def test_schema() -> None:
|
def test_schema() -> None:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from ahriman.models.package import Package
|
from ahriman.models.package import Package
|
||||||
from ahriman.web.schemas.package_name_schema import PackageNameSchema
|
from ahriman.web.schemas import PackageNameSchema
|
||||||
|
|
||||||
|
|
||||||
def test_schema(package_ahriman: Package) -> None:
|
def test_schema(package_ahriman: Package) -> None:
|
||||||
|
@ -25,6 +25,15 @@ async def test_get_default_validator(client_with_auth: TestClient) -> None:
|
|||||||
assert response.status == 405
|
assert response.status == 405
|
||||||
|
|
||||||
|
|
||||||
|
async def test_get_import_error(client_with_auth: TestClient, mocker: MockerFixture) -> None:
|
||||||
|
"""
|
||||||
|
must return 405 on import error
|
||||||
|
"""
|
||||||
|
pytest.helpers.import_error("ahriman.core.auth.oauth", ["OAuth"], mocker)
|
||||||
|
response = await client_with_auth.get("/api/v1/login")
|
||||||
|
assert response.status == 405
|
||||||
|
|
||||||
|
|
||||||
async def test_get_redirect_to_oauth(client_with_oauth_auth: TestClient) -> None:
|
async def test_get_redirect_to_oauth(client_with_oauth_auth: TestClient) -> None:
|
||||||
"""
|
"""
|
||||||
must redirect to OAuth service provider in case if no code is supplied
|
must redirect to OAuth service provider in case if no code is supplied
|
||||||
|
Loading…
Reference in New Issue
Block a user