mirror of
https://github.com/arcan1s/ffxivbis.git
synced 2025-04-25 01:37:17 +00:00
rename service to ffxivbis, add notes about venv
This commit is contained in:
parent
36f0b8151a
commit
28dabcb44e
26
README.md
26
README.md
@ -9,14 +9,23 @@ This service requires python >= 3.7. For other dependencies see `setup.py`.
|
|||||||
In general installation process looks like:
|
In general installation process looks like:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python setup.py build
|
python setup.py build install
|
||||||
python setup.py test # if you want to run tests
|
python setup.py test # if you want to run tests
|
||||||
```
|
```
|
||||||
|
|
||||||
Service can be run from `src` directory by using command:
|
With virtualenv (make sure that virtualenv package was installed) the process may look like:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -m service.application.application
|
virtualenv -p python3.7 env
|
||||||
|
source env/bin/activate
|
||||||
|
python setup.py install
|
||||||
|
pip install aiosqlite # setup.py does not handle extras
|
||||||
|
```
|
||||||
|
|
||||||
|
Service can be run by using command (if you don't use virtualenv, you have to run it from `src` directory):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python -m ffxivbis.application.application
|
||||||
```
|
```
|
||||||
|
|
||||||
To see all available options type `--help`.
|
To see all available options type `--help`.
|
||||||
@ -27,6 +36,17 @@ REST API documentation is available at `http://0.0.0.0:8000/api-docs`. HTML repr
|
|||||||
|
|
||||||
*Note*: host and port depend on configuration settings.
|
*Note*: host and port depend on configuration settings.
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
|
||||||
|
Default admin user is `admin:qwerty`, but it may be changed by generating new hash, e.g.:
|
||||||
|
|
||||||
|
```python
|
||||||
|
from passlib.hash import md5_crypt
|
||||||
|
md5_crypt.hash('newstrongpassword')
|
||||||
|
```
|
||||||
|
|
||||||
|
and add new password to configuration.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
* `settings` section
|
* `settings` section
|
||||||
|
10
setup.py
10
setup.py
@ -5,7 +5,7 @@ from os import path
|
|||||||
|
|
||||||
here = path.abspath(path.dirname(__file__))
|
here = path.abspath(path.dirname(__file__))
|
||||||
metadata = dict()
|
metadata = dict()
|
||||||
with open(convert_path('src/service/core/version.py')) as metadata_file:
|
with open(convert_path('src/ffxivbis/core/version.py')) as metadata_file:
|
||||||
exec(metadata_file.read(), metadata)
|
exec(metadata_file.read(), metadata)
|
||||||
|
|
||||||
|
|
||||||
@ -22,13 +22,15 @@ setup(
|
|||||||
|
|
||||||
license='BSD',
|
license='BSD',
|
||||||
|
|
||||||
packages=find_packages(exclude=['contrib', 'docs', 'tests']),
|
package_dir={'': 'src'},
|
||||||
|
packages=find_packages(where='src', exclude=['contrib', 'docs', 'test']),
|
||||||
|
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'aiohttp',
|
'aiohttp==3.6.0',
|
||||||
'aiohttp_jinja2',
|
'aiohttp_jinja2',
|
||||||
'aiohttp_security',
|
'aiohttp_security',
|
||||||
'apispec',
|
'apispec',
|
||||||
|
'iniherit',
|
||||||
'Jinja2',
|
'Jinja2',
|
||||||
'passlib',
|
'passlib',
|
||||||
'requests',
|
'requests',
|
||||||
@ -44,7 +46,7 @@ setup(
|
|||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
|
|
||||||
extras_require={
|
extras_require={
|
||||||
'Postgresql': ['aiopg'],
|
'Postgresql': ['asyncpg'],
|
||||||
'SQLite': ['aiosqlite'],
|
'SQLite': ['aiosqlite'],
|
||||||
'test': ['coverage', 'pytest'],
|
'test': ['coverage', 'pytest'],
|
||||||
},
|
},
|
||||||
|
@ -10,7 +10,7 @@ from aiohttp.web import middleware, Request, Response
|
|||||||
from aiohttp_security import AbstractAuthorizationPolicy, check_permission
|
from aiohttp_security import AbstractAuthorizationPolicy, check_permission
|
||||||
from typing import Callable, Optional
|
from typing import Callable, Optional
|
||||||
|
|
||||||
from service.core.database import Database
|
from ffxivbis.core.database import Database
|
||||||
|
|
||||||
|
|
||||||
class AuthorizationPolicy(AbstractAuthorizationPolicy):
|
class AuthorizationPolicy(AbstractAuthorizationPolicy):
|
@ -9,17 +9,17 @@
|
|||||||
from aiohttp.web import Application
|
from aiohttp.web import Application
|
||||||
from apispec import APISpec
|
from apispec import APISpec
|
||||||
|
|
||||||
from service.core.version import __version__
|
from ffxivbis.core.version import __version__
|
||||||
from service.models.action import Action
|
from ffxivbis.models.action import Action
|
||||||
from service.models.bis import BiS, BiSLink
|
from ffxivbis.models.bis import BiS, BiSLink
|
||||||
from service.models.error import Error
|
from ffxivbis.models.error import Error
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.loot import Loot
|
from ffxivbis.models.loot import Loot
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player, PlayerId, PlayerIdWithCounters
|
from ffxivbis.models.player import Player, PlayerId, PlayerIdWithCounters
|
||||||
from service.models.player_edit import PlayerEdit
|
from ffxivbis.models.player_edit import PlayerEdit
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
from service.models.user import User
|
from ffxivbis.models.user import User
|
||||||
|
|
||||||
|
|
||||||
def get_spec(app: Application) -> APISpec:
|
def get_spec(app: Application) -> APISpec:
|
@ -9,12 +9,12 @@
|
|||||||
from aiohttp.web import Response
|
from aiohttp.web import Response
|
||||||
from typing import Any, Dict, List, Optional, Type
|
from typing import Any, Dict, List, Optional, Type
|
||||||
|
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import PlayerId
|
from ffxivbis.models.player import PlayerId
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
||||||
from service.api.views.common.bis_base import BiSBaseView
|
from ffxivbis.api.views.common.bis_base import BiSBaseView
|
||||||
|
|
||||||
from .openapi import OpenApi
|
from .openapi import OpenApi
|
||||||
|
|
@ -9,8 +9,8 @@
|
|||||||
from aiohttp.web import Response
|
from aiohttp.web import Response
|
||||||
from typing import Any, Dict, List, Optional, Type
|
from typing import Any, Dict, List, Optional, Type
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
||||||
from service.api.views.common.login_base import LoginBaseView
|
from ffxivbis.api.views.common.login_base import LoginBaseView
|
||||||
|
|
||||||
from .openapi import OpenApi
|
from .openapi import OpenApi
|
||||||
|
|
@ -6,8 +6,8 @@
|
|||||||
from aiohttp.web import Response
|
from aiohttp.web import Response
|
||||||
from typing import Any, Dict, List, Optional, Type
|
from typing import Any, Dict, List, Optional, Type
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_json
|
from ffxivbis.api.utils import wrap_exception, wrap_json
|
||||||
from service.api.views.common.login_base import LoginBaseView
|
from ffxivbis.api.views.common.login_base import LoginBaseView
|
||||||
|
|
||||||
from .openapi import OpenApi
|
from .openapi import OpenApi
|
||||||
|
|
@ -9,12 +9,12 @@
|
|||||||
from aiohttp.web import Response
|
from aiohttp.web import Response
|
||||||
from typing import Any, Dict, List, Optional, Type
|
from typing import Any, Dict, List, Optional, Type
|
||||||
|
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import PlayerId
|
from ffxivbis.models.player import PlayerId
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
||||||
from service.api.views.common.loot_base import LootBaseView
|
from ffxivbis.api.views.common.loot_base import LootBaseView
|
||||||
|
|
||||||
from .openapi import OpenApi
|
from .openapi import OpenApi
|
||||||
|
|
@ -10,7 +10,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from typing import Any, Dict, List, Optional, Type
|
from typing import Any, Dict, List, Optional, Type
|
||||||
|
|
||||||
from service.models.serializable import Serializable
|
from ffxivbis.models.serializable import Serializable
|
||||||
|
|
||||||
|
|
||||||
class OpenApi(Serializable):
|
class OpenApi(Serializable):
|
@ -9,10 +9,10 @@
|
|||||||
from aiohttp.web import Response
|
from aiohttp.web import Response
|
||||||
from typing import Any, Dict, List, Optional, Type
|
from typing import Any, Dict, List, Optional, Type
|
||||||
|
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param, wrap_json
|
||||||
from service.api.views.common.player_base import PlayerBaseView
|
from ffxivbis.api.views.common.player_base import PlayerBaseView
|
||||||
|
|
||||||
from .openapi import OpenApi
|
from .openapi import OpenApi
|
||||||
|
|
@ -9,10 +9,10 @@
|
|||||||
from aiohttp.web import View
|
from aiohttp.web import View
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from service.core.ariyala_parser import AriyalaParser
|
from ffxivbis.core.ariyala_parser import AriyalaParser
|
||||||
from service.models.bis import BiS
|
from ffxivbis.models.bis import BiS
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import PlayerId
|
from ffxivbis.models.player import PlayerId
|
||||||
|
|
||||||
|
|
||||||
class BiSBaseView(View):
|
class BiSBaseView(View):
|
@ -10,7 +10,7 @@ from aiohttp.web import HTTPFound, HTTPUnauthorized, View
|
|||||||
from aiohttp_security import check_authorized, forget, remember
|
from aiohttp_security import check_authorized, forget, remember
|
||||||
from passlib.hash import md5_crypt
|
from passlib.hash import md5_crypt
|
||||||
|
|
||||||
from service.models.user import User
|
from ffxivbis.models.user import User
|
||||||
|
|
||||||
|
|
||||||
class LoginBaseView(View):
|
class LoginBaseView(View):
|
@ -9,9 +9,9 @@
|
|||||||
from aiohttp.web import View
|
from aiohttp.web import View
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import PlayerId, PlayerIdWithCounters
|
from ffxivbis.models.player import PlayerId, PlayerIdWithCounters
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
|
|
||||||
|
|
||||||
class LootBaseView(View):
|
class LootBaseView(View):
|
@ -9,10 +9,10 @@
|
|||||||
from aiohttp.web import View
|
from aiohttp.web import View
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from service.core.ariyala_parser import AriyalaParser
|
from ffxivbis.core.ariyala_parser import AriyalaParser
|
||||||
from service.models.bis import BiS
|
from ffxivbis.models.bis import BiS
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.player import Player, PlayerId
|
from ffxivbis.models.player import Player, PlayerId
|
||||||
|
|
||||||
|
|
||||||
class PlayerBaseView(View):
|
class PlayerBaseView(View):
|
@ -10,12 +10,12 @@ from aiohttp.web import HTTPFound, Response
|
|||||||
from aiohttp_jinja2 import template
|
from aiohttp_jinja2 import template
|
||||||
from typing import Any, Dict, List
|
from typing import Any, Dict, List
|
||||||
|
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player, PlayerId
|
from ffxivbis.models.player import Player, PlayerId
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param
|
||||||
from service.api.views.common.bis_base import BiSBaseView
|
from ffxivbis.api.views.common.bis_base import BiSBaseView
|
||||||
from service.api.views.common.player_base import PlayerBaseView
|
from ffxivbis.api.views.common.player_base import PlayerBaseView
|
||||||
|
|
||||||
|
|
||||||
class BiSHtmlView(BiSBaseView, PlayerBaseView):
|
class BiSHtmlView(BiSBaseView, PlayerBaseView):
|
@ -10,13 +10,13 @@ from aiohttp.web import HTTPFound, Response
|
|||||||
from aiohttp_jinja2 import template
|
from aiohttp_jinja2 import template
|
||||||
from typing import Any, Dict, List
|
from typing import Any, Dict, List
|
||||||
|
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player, PlayerId
|
from ffxivbis.models.player import Player, PlayerId
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param
|
||||||
from service.api.views.common.loot_base import LootBaseView
|
from ffxivbis.api.views.common.loot_base import LootBaseView
|
||||||
from service.api.views.common.player_base import PlayerBaseView
|
from ffxivbis.api.views.common.player_base import PlayerBaseView
|
||||||
|
|
||||||
|
|
||||||
class LootHtmlView(LootBaseView, PlayerBaseView):
|
class LootHtmlView(LootBaseView, PlayerBaseView):
|
@ -10,13 +10,13 @@ from aiohttp.web import Response
|
|||||||
from aiohttp_jinja2 import template
|
from aiohttp_jinja2 import template
|
||||||
from typing import Any, Dict, List, Union
|
from typing import Any, Dict, List, Union
|
||||||
|
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import PlayerIdWithCounters
|
from ffxivbis.models.player import PlayerIdWithCounters
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
|
|
||||||
from service.api.utils import wrap_invalid_param
|
from ffxivbis.api.utils import wrap_invalid_param
|
||||||
from service.api.views.common.loot_base import LootBaseView
|
from ffxivbis.api.views.common.loot_base import LootBaseView
|
||||||
from service.api.views.common.player_base import PlayerBaseView
|
from ffxivbis.api.views.common.player_base import PlayerBaseView
|
||||||
|
|
||||||
|
|
||||||
class LootSuggestHtmlView(LootBaseView, PlayerBaseView):
|
class LootSuggestHtmlView(LootBaseView, PlayerBaseView):
|
@ -10,11 +10,11 @@ from aiohttp.web import HTTPFound, Response
|
|||||||
from aiohttp_jinja2 import template
|
from aiohttp_jinja2 import template
|
||||||
from typing import Any, Dict, List
|
from typing import Any, Dict, List
|
||||||
|
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.player import PlayerIdWithCounters
|
from ffxivbis.models.player import PlayerIdWithCounters
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param
|
||||||
from service.api.views.common.player_base import PlayerBaseView
|
from ffxivbis.api.views.common.player_base import PlayerBaseView
|
||||||
|
|
||||||
|
|
||||||
class PlayerHtmlView(PlayerBaseView):
|
class PlayerHtmlView(PlayerBaseView):
|
@ -10,10 +10,10 @@ from aiohttp.web import HTTPFound, Response
|
|||||||
from aiohttp_jinja2 import template
|
from aiohttp_jinja2 import template
|
||||||
from typing import Any, Dict, List
|
from typing import Any, Dict, List
|
||||||
|
|
||||||
from service.models.user import User
|
from ffxivbis.models.user import User
|
||||||
|
|
||||||
from service.api.utils import wrap_exception, wrap_invalid_param
|
from ffxivbis.api.utils import wrap_exception, wrap_invalid_param
|
||||||
from service.api.views.common.login_base import LoginBaseView
|
from ffxivbis.api.views.common.login_base import LoginBaseView
|
||||||
|
|
||||||
|
|
||||||
class UsersHtmlView(LoginBaseView):
|
class UsersHtmlView(LoginBaseView):
|
@ -14,10 +14,10 @@ from aiohttp import web
|
|||||||
from aiohttp_security import setup as setup_security
|
from aiohttp_security import setup as setup_security
|
||||||
from aiohttp_security import CookiesIdentityPolicy
|
from aiohttp_security import CookiesIdentityPolicy
|
||||||
|
|
||||||
from service.core.config import Configuration
|
from ffxivbis.core.config import Configuration
|
||||||
from service.core.database import Database
|
from ffxivbis.core.database import Database
|
||||||
from service.core.loot_selector import LootSelector
|
from ffxivbis.core.loot_selector import LootSelector
|
||||||
from service.core.party import Party
|
from ffxivbis.core.party import Party
|
||||||
|
|
||||||
from .auth import AuthorizationPolicy, authorize_factory
|
from .auth import AuthorizationPolicy, authorize_factory
|
||||||
from .routes import setup_routes
|
from .routes import setup_routes
|
@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
# License: 3-clause BSD, see https://opensource.org/licenses/BSD-3-Clause
|
# License: 3-clause BSD, see https://opensource.org/licenses/BSD-3-Clause
|
||||||
#
|
#
|
||||||
from service.core.config import Configuration
|
from ffxivbis.core.config import Configuration
|
||||||
|
|
||||||
from .core import Application
|
from .core import Application
|
||||||
|
|
@ -9,12 +9,12 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from service.api.web import run_server, setup_service
|
from ffxivbis.api.web import run_server, setup_service
|
||||||
from service.core.config import Configuration
|
from ffxivbis.core.config import Configuration
|
||||||
from service.core.database import Database
|
from ffxivbis.core.database import Database
|
||||||
from service.core.loot_selector import LootSelector
|
from ffxivbis.core.loot_selector import LootSelector
|
||||||
from service.core.party import Party
|
from ffxivbis.core.party import Party
|
||||||
from service.models.user import User
|
from ffxivbis.models.user import User
|
||||||
|
|
||||||
|
|
||||||
class Application:
|
class Application:
|
@ -11,7 +11,7 @@ import requests
|
|||||||
|
|
||||||
from typing import Dict, List, Optional
|
from typing import Dict, List, Optional
|
||||||
|
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
|
|
||||||
from .config import Configuration
|
from .config import Configuration
|
||||||
|
|
@ -14,11 +14,11 @@ import logging
|
|||||||
from yoyo import get_backend, read_migrations
|
from yoyo import get_backend, read_migrations
|
||||||
from typing import List, Mapping, Optional, Type, Union
|
from typing import List, Mapping, Optional, Type, Union
|
||||||
|
|
||||||
from service.models.loot import Loot
|
from ffxivbis.models.loot import Loot
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player, PlayerId
|
from ffxivbis.models.player import Player, PlayerId
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
from service.models.user import User
|
from ffxivbis.models.user import User
|
||||||
|
|
||||||
from .config import Configuration
|
from .config import Configuration
|
||||||
from .exceptions import InvalidDatabase
|
from .exceptions import InvalidDatabase
|
@ -8,9 +8,9 @@
|
|||||||
#
|
#
|
||||||
from typing import Iterable, List, Tuple, Union
|
from typing import Iterable, List, Tuple, Union
|
||||||
|
|
||||||
from service.models.player import Player, PlayerIdWithCounters
|
from ffxivbis.models.player import Player, PlayerIdWithCounters
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
|
|
||||||
from .party import Party
|
from .party import Party
|
||||||
|
|
@ -11,9 +11,9 @@ from __future__ import annotations
|
|||||||
from threading import Lock
|
from threading import Lock
|
||||||
from typing import Dict, List, Optional, Type, Union
|
from typing import Dict, List, Optional, Type, Union
|
||||||
|
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player, PlayerId
|
from ffxivbis.models.player import Player, PlayerId
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
|
|
||||||
from .database import Database
|
from .database import Database
|
||||||
|
|
@ -12,13 +12,13 @@ from passlib.hash import md5_crypt
|
|||||||
from psycopg2.extras import DictCursor
|
from psycopg2.extras import DictCursor
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
from service.models.bis import BiS
|
from ffxivbis.models.bis import BiS
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.loot import Loot
|
from ffxivbis.models.loot import Loot
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player, PlayerId
|
from ffxivbis.models.player import Player, PlayerId
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
from service.models.user import User
|
from ffxivbis.models.user import User
|
||||||
|
|
||||||
from .database import Database
|
from .database import Database
|
||||||
|
|
@ -9,13 +9,13 @@
|
|||||||
from passlib.hash import md5_crypt
|
from passlib.hash import md5_crypt
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
from service.models.bis import BiS
|
from ffxivbis.models.bis import BiS
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.loot import Loot
|
from ffxivbis.models.loot import Loot
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player, PlayerId
|
from ffxivbis.models.player import Player, PlayerId
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
from service.models.user import User
|
from ffxivbis.models.user import User
|
||||||
|
|
||||||
from .database import Database
|
from .database import Database
|
||||||
from .sqlite_helper import SQLiteHelper
|
from .sqlite_helper import SQLiteHelper
|
@ -11,7 +11,7 @@ from __future__ import annotations
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Any, Dict, List, Mapping, Type, Union
|
from typing import Any, Dict, List, Mapping, Type, Union
|
||||||
|
|
||||||
from service.core.exceptions import InvalidDataRow
|
from ffxivbis.core.exceptions import InvalidDataRow
|
||||||
|
|
||||||
from .serializable import Serializable
|
from .serializable import Serializable
|
||||||
from .upgrade import Upgrade
|
from .upgrade import Upgrade
|
@ -4,17 +4,17 @@ import tempfile
|
|||||||
|
|
||||||
from typing import Any, List
|
from typing import Any, List
|
||||||
|
|
||||||
from service.api.web import setup_service
|
from ffxivbis.api.web import setup_service
|
||||||
from service.core.ariyala_parser import AriyalaParser
|
from ffxivbis.core.ariyala_parser import AriyalaParser
|
||||||
from service.core.config import Configuration
|
from ffxivbis.core.config import Configuration
|
||||||
from service.core.database import Database
|
from ffxivbis.core.database import Database
|
||||||
from service.core.loot_selector import LootSelector
|
from ffxivbis.core.loot_selector import LootSelector
|
||||||
from service.core.party import Party
|
from ffxivbis.core.party import Party
|
||||||
from service.core.sqlite import SQLiteDatabase
|
from ffxivbis.core.sqlite import SQLiteDatabase
|
||||||
from service.models.bis import BiS
|
from ffxivbis.models.bis import BiS
|
||||||
from service.models.job import Job
|
from ffxivbis.models.job import Job
|
||||||
from service.models.piece import Head, Piece, Weapon
|
from ffxivbis.models.piece import Head, Piece, Weapon
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from service.core.ariyala_parser import AriyalaParser
|
from ffxivbis.core.ariyala_parser import AriyalaParser
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
def test_get(parser: AriyalaParser, player: Player, bis_link: str, bis_set: List[Piece]) -> None:
|
def test_get(parser: AriyalaParser, player: Player, bis_link: str, bis_set: List[Piece]) -> None:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from service.models.bis import BiS
|
from ffxivbis.models.bis import BiS
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.upgrade import Upgrade
|
from ffxivbis.models.upgrade import Upgrade
|
||||||
|
|
||||||
|
|
||||||
def test_set_item(bis: BiS, weapon: Piece) -> None:
|
def test_set_item(bis: BiS, weapon: Piece) -> None:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from service.core.loot_selector import LootSelector
|
from ffxivbis.core.loot_selector import LootSelector
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
def test_suggest_by_need(selector: LootSelector, player: Player, player2: Player, head_with_upgrade: Piece) -> None:
|
def test_suggest_by_need(selector: LootSelector, player: Player, player2: Player, head_with_upgrade: Piece) -> None:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from service.core.database import Database
|
from ffxivbis.core.database import Database
|
||||||
from service.core.party import Party
|
from ffxivbis.core.party import Party
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
async def test_set_player(party: Party, player: Player) -> None:
|
async def test_set_player(party: Party, player: Player) -> None:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
|
|
||||||
|
|
||||||
def test_parse_head(head_with_upgrade: Piece) -> None:
|
def test_parse_head(head_with_upgrade: Piece) -> None:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
def test_loot_count(player: Player, head_with_upgrade: Piece, weapon: Piece) -> None:
|
def test_loot_count(player: Player, head_with_upgrade: Piece, weapon: Piece) -> None:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from typing import Any, List
|
from typing import Any, List
|
||||||
|
|
||||||
from service.api.utils import make_json
|
from ffxivbis.api.utils import make_json
|
||||||
from service.core.party import Party
|
from ffxivbis.core.party import Party
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
async def test_bis_get(server: Any, party: Party, player: Player, player2: Player,
|
async def test_bis_get(server: Any, party: Party, player: Player, player2: Player,
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from service.api.utils import make_json
|
from ffxivbis.api.utils import make_json
|
||||||
from service.core.party import Party
|
from ffxivbis.core.party import Party
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
async def test_loot_get(server: Any, party: Party, player: Player, player2: Player, weapon: Piece) -> None:
|
async def test_loot_get(server: Any, party: Party, player: Player, player2: Player, weapon: Piece) -> None:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from typing import Any, List
|
from typing import Any, List
|
||||||
|
|
||||||
from service.api.utils import make_json
|
from ffxivbis.api.utils import make_json
|
||||||
from service.core.party import Party
|
from ffxivbis.core.party import Party
|
||||||
from service.models.piece import Piece
|
from ffxivbis.models.piece import Piece
|
||||||
from service.models.player import Player
|
from ffxivbis.models.player import Player
|
||||||
|
|
||||||
|
|
||||||
async def test_players_get(server: Any, party: Party, player: Player) -> None:
|
async def test_players_get(server: Any, party: Party, player: Player) -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user