Update atst to atat
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
import pytest
|
||||
|
||||
from atst.domain.authnid.crl.util import crl_local_path, CRL_LIST
|
||||
from atat.domain.authnid.crl.util import crl_local_path, CRL_LIST
|
||||
|
||||
from tests.utils import parse_for_issuer_and_next_update
|
||||
|
||||
|
@@ -7,8 +7,8 @@ from werkzeug.datastructures import FileStorage
|
||||
from collections import OrderedDict
|
||||
from unittest.mock import Mock
|
||||
|
||||
from atst.app import make_app, make_config
|
||||
from atst.database import db as _db
|
||||
from atat.app import make_app, make_config
|
||||
from atat.database import db as _db
|
||||
import tests.factories as factories
|
||||
from tests.mocks import PDF_FILENAME, PDF_FILENAME2
|
||||
from tests.utils import FakeLogger, FakeNotificationSender
|
||||
@@ -145,7 +145,7 @@ def dummy_field():
|
||||
def user_session(monkeypatch, session):
|
||||
def set_user_session(user=None):
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.auth.get_current_user",
|
||||
"atat.domain.auth.get_current_user",
|
||||
lambda *args: user or factories.UserFactory.create(),
|
||||
)
|
||||
|
||||
|
@@ -1,13 +1,13 @@
|
||||
import pytest
|
||||
|
||||
from atst.domain.authnid import AuthenticationContext
|
||||
from atst.domain.authnid.crl import (
|
||||
from atat.domain.authnid import AuthenticationContext
|
||||
from atat.domain.authnid.crl import (
|
||||
CRLCache,
|
||||
CRLRevocationException,
|
||||
CRLInvalidException,
|
||||
)
|
||||
from atst.domain.exceptions import UnauthenticatedError, NotFoundError
|
||||
from atst.domain.users import Users
|
||||
from atat.domain.exceptions import UnauthenticatedError, NotFoundError
|
||||
from atat.domain.users import Users
|
||||
|
||||
from tests.mocks import DOD_SDN_INFO, DOD_SDN, FIXTURE_EMAIL_ADDRESS
|
||||
from tests.factories import UserFactory
|
||||
|
@@ -7,13 +7,13 @@ from cryptography.hazmat.backends import default_backend
|
||||
from cryptography.hazmat.primitives.serialization import Encoding
|
||||
from OpenSSL import crypto
|
||||
|
||||
from atst.domain.authnid.crl import (
|
||||
from atat.domain.authnid.crl import (
|
||||
CRLCache,
|
||||
CRLRevocationException,
|
||||
CRLInvalidException,
|
||||
NoOpCRLCache,
|
||||
)
|
||||
from atst.domain.authnid.crl.util import (
|
||||
from atat.domain.authnid.crl.util import (
|
||||
load_crl_locations_cache,
|
||||
serialize_crl_locations_cache,
|
||||
CRLParseError,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import pytest
|
||||
import atst.domain.authnid.utils as utils
|
||||
import atat.domain.authnid.utils as utils
|
||||
from tests.mocks import DOD_SDN, FIXTURE_EMAIL_ADDRESS
|
||||
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from atst.domain.csp.reports import prepare_azure_reporting_data
|
||||
from atat.domain.csp.reports import prepare_azure_reporting_data
|
||||
from tests.factories import PortfolioFactory
|
||||
from decimal import Decimal
|
||||
import pendulum
|
||||
|
@@ -8,7 +8,7 @@ import pytest
|
||||
from tests.factories import ApplicationFactory, EnvironmentFactory
|
||||
from tests.mock_azure import AUTH_CREDENTIALS, mock_azure
|
||||
|
||||
from atst.domain.csp.cloud.exceptions import (
|
||||
from atat.domain.csp.cloud.exceptions import (
|
||||
AuthenticationException,
|
||||
UserProvisioningException,
|
||||
ConnectionException,
|
||||
@@ -16,8 +16,8 @@ from atst.domain.csp.cloud.exceptions import (
|
||||
SecretException,
|
||||
DomainNameException,
|
||||
)
|
||||
from atst.domain.csp.cloud import AzureCloudProvider
|
||||
from atst.domain.csp.cloud.models import (
|
||||
from atat.domain.csp.cloud import AzureCloudProvider
|
||||
from atat.domain.csp.cloud.models import (
|
||||
AdminRoleDefinitionCSPPayload,
|
||||
AdminRoleDefinitionCSPResult,
|
||||
ApplicationCSPPayload,
|
||||
@@ -69,7 +69,7 @@ from atst.domain.csp.cloud.models import (
|
||||
UserCSPPayload,
|
||||
UserRoleCSPPayload,
|
||||
)
|
||||
from atst.domain.csp.cloud.exceptions import UserProvisioningException
|
||||
from atat.domain.csp.cloud.exceptions import UserProvisioningException
|
||||
|
||||
BILLING_ACCOUNT_NAME = "52865e4c-52e8-5a6c-da6b-c58f0814f06f:7ea5de9d-b8ce-4901-b1c5-d864320c7b03_2019-05-31"
|
||||
|
||||
@@ -1599,7 +1599,7 @@ class TestGenerateValidDomainName:
|
||||
return True
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.csp.cloud.AzureCloudProvider.validate_domain_name",
|
||||
"atat.domain.csp.cloud.AzureCloudProvider.validate_domain_name",
|
||||
_validate_domain_name,
|
||||
)
|
||||
assert mock_azure.generate_valid_domain_name(tenant_name) == tenant_name
|
||||
@@ -1609,7 +1609,7 @@ class TestGenerateValidDomainName:
|
||||
return False
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.csp.cloud.AzureCloudProvider.validate_domain_name",
|
||||
"atat.domain.csp.cloud.AzureCloudProvider.validate_domain_name",
|
||||
_validate_domain_name,
|
||||
)
|
||||
with pytest.raises(DomainNameException):
|
||||
@@ -1626,7 +1626,7 @@ class TestGenerateValidDomainName:
|
||||
return True
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.csp.cloud.AzureCloudProvider.validate_domain_name",
|
||||
"atat.domain.csp.cloud.AzureCloudProvider.validate_domain_name",
|
||||
_validate_domain_name,
|
||||
)
|
||||
assert mock_azure.generate_valid_domain_name(tenant_name) != tenant_name
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from atst.domain.csp.files import AzureFileService
|
||||
from atat.domain.csp.files import AzureFileService
|
||||
from azure.storage.blob.models import Blob
|
||||
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
|
||||
from atst.domain.csp import MockCloudProvider
|
||||
from atst.domain.csp.cloud.models import (
|
||||
from atat.domain.csp import MockCloudProvider
|
||||
from atat.domain.csp.cloud.models import (
|
||||
EnvironmentCSPPayload,
|
||||
EnvironmentCSPResult,
|
||||
TenantCSPPayload,
|
||||
|
@@ -2,7 +2,7 @@ import pytest
|
||||
|
||||
from pydantic import ValidationError
|
||||
|
||||
from atst.domain.csp.cloud.models import (
|
||||
from atat.domain.csp.cloud.models import (
|
||||
AZURE_MGMNT_PATH,
|
||||
KeyVaultCredentials,
|
||||
ManagementGroupCSPPayload,
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from atst.domain.csp.cloud.policy import AzurePolicyManager, AzurePolicy
|
||||
from atat.domain.csp.cloud.policy import AzurePolicyManager, AzurePolicy
|
||||
|
||||
|
||||
def test_portfolio_definitions():
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import pytest
|
||||
|
||||
from atst.domain.application_roles import ApplicationRoles
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.domain.exceptions import NotFoundError
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.models import ApplicationRoleStatus
|
||||
from atat.domain.application_roles import ApplicationRoles
|
||||
from atat.domain.environment_roles import EnvironmentRoles
|
||||
from atat.domain.exceptions import NotFoundError
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.models import ApplicationRoleStatus
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
|
@@ -2,12 +2,12 @@ import pendulum
|
||||
import pytest
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.models import CSPRole, ApplicationRoleStatus
|
||||
from atst.domain.application_roles import ApplicationRoles
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.domain.exceptions import AlreadyExistsError, NotFoundError
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atat.models import CSPRole, ApplicationRoleStatus
|
||||
from atat.domain.application_roles import ApplicationRoles
|
||||
from atat.domain.applications import Applications
|
||||
from atat.domain.environment_roles import EnvironmentRoles
|
||||
from atat.domain.exceptions import AlreadyExistsError, NotFoundError
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
|
||||
from tests.factories import (
|
||||
ApplicationFactory,
|
||||
|
@@ -1,12 +1,12 @@
|
||||
import pytest
|
||||
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.audit_log import AuditLog
|
||||
from atst.domain.exceptions import UnauthorizedError
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.domain.users import Users
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atat.domain.applications import Applications
|
||||
from atat.domain.audit_log import AuditLog
|
||||
from atat.domain.exceptions import UnauthorizedError
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.portfolios import Portfolios
|
||||
from atat.domain.users import Users
|
||||
from atat.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from tests.factories import (
|
||||
ApplicationFactory,
|
||||
ApplicationInvitationFactory,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
from flask import make_response, session
|
||||
|
||||
from atst.domain.auth import logout
|
||||
from atat.domain.auth import logout
|
||||
|
||||
|
||||
def _write_session(app):
|
||||
@@ -19,7 +19,7 @@ def test_logout_destroys_session(app):
|
||||
|
||||
def test_logout_logs_dod_id_for_current_user(monkeypatch, mock_logger):
|
||||
dod_id = "3434343434"
|
||||
monkeypatch.setattr("atst.domain.auth._current_dod_id", lambda: dod_id)
|
||||
monkeypatch.setattr("atat.domain.auth._current_dod_id", lambda: dod_id)
|
||||
logout()
|
||||
assert dod_id in mock_logger.messages[-1]
|
||||
|
||||
|
@@ -7,12 +7,12 @@ from tests.factories import (
|
||||
PortfolioFactory,
|
||||
PortfolioRoleFactory,
|
||||
)
|
||||
from atst.domain.authz import Authorization, user_can_access
|
||||
from atst.domain.authz.decorator import user_can_access_decorator
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.exceptions import UnauthorizedError
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atat.domain.authz import Authorization, user_can_access
|
||||
from atat.domain.authz.decorator import user_can_access_decorator
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.exceptions import UnauthorizedError
|
||||
from atat.models.permissions import Permissions
|
||||
from atat.domain.portfolio_roles import PortfolioRoles
|
||||
|
||||
from tests.utils import FakeLogger
|
||||
|
||||
@@ -222,7 +222,7 @@ def test_user_can_access_decorator_logs_access(
|
||||
set_current_user(user)
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authz.decorator.check_access", lambda *a, **k: True
|
||||
"atat.domain.authz.decorator.check_access", lambda *a, **k: True
|
||||
)
|
||||
num_msgs = len(mock_logger.messages)
|
||||
_do_something()
|
||||
@@ -233,7 +233,7 @@ def test_user_can_access_decorator_logs_access(
|
||||
def _unauthorized(*a, **k):
|
||||
raise UnauthorizedError(user, "do something")
|
||||
|
||||
monkeypatch.setattr("atst.domain.authz.decorator.check_access", _unauthorized)
|
||||
monkeypatch.setattr("atat.domain.authz.decorator.check_access", _unauthorized)
|
||||
num_msgs = len(mock_logger.messages)
|
||||
with pytest.raises(UnauthorizedError):
|
||||
_do_something()
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.models import EnvironmentRole, ApplicationRoleStatus
|
||||
from atat.domain.environment_roles import EnvironmentRoles
|
||||
from atat.models import EnvironmentRole, ApplicationRoleStatus
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import pytest
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.domain.exceptions import AlreadyExistsError, DisabledError, NotFoundError
|
||||
from atst.models.environment_role import CSPRole, EnvironmentRole
|
||||
from atat.domain.environments import Environments
|
||||
from atat.domain.environment_roles import EnvironmentRoles
|
||||
from atat.domain.exceptions import AlreadyExistsError, DisabledError, NotFoundError
|
||||
from atat.models.environment_role import CSPRole, EnvironmentRole
|
||||
|
||||
from tests.factories import (
|
||||
ApplicationFactory,
|
||||
|
@@ -2,16 +2,16 @@ import pytest
|
||||
import re
|
||||
import pendulum
|
||||
|
||||
from atst.domain.audit_log import AuditLog
|
||||
from atst.domain.invitations import (
|
||||
from atat.domain.audit_log import AuditLog
|
||||
from atat.domain.invitations import (
|
||||
ExpiredError,
|
||||
InvitationError,
|
||||
NotFoundError,
|
||||
PortfolioInvitations,
|
||||
WrongUserError,
|
||||
)
|
||||
from atst.models import InvitationStatus
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atat.models import InvitationStatus
|
||||
from atat.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
|
||||
from tests.factories import (
|
||||
PortfolioFactory,
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.exceptions import NotFoundError
|
||||
from atst.utils import first_or_none
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.exceptions import NotFoundError
|
||||
from atat.utils import first_or_none
|
||||
|
||||
|
||||
def test_get_all():
|
||||
|
@@ -1,8 +1,8 @@
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atst.domain.users import Users
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.portfolio_roles import PortfolioRoles
|
||||
from atat.domain.users import Users
|
||||
from atat.models.permissions import Permissions
|
||||
from atat.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
|
||||
from tests.factories import (
|
||||
PortfolioFactory,
|
||||
|
@@ -17,16 +17,16 @@ from tests.factories import (
|
||||
UserFactory,
|
||||
)
|
||||
|
||||
from atst.models import FSMStates, PortfolioStateMachine, TaskOrder
|
||||
from atst.models.mixins.state_machines import (
|
||||
from atat.models import FSMStates, PortfolioStateMachine, TaskOrder
|
||||
from atat.models.mixins.state_machines import (
|
||||
AzureStages,
|
||||
StageStates,
|
||||
_build_csp_states,
|
||||
_build_transitions,
|
||||
compose_state,
|
||||
)
|
||||
from atst.models.portfolio import Portfolio
|
||||
from atst.models.portfolio_state_machine import (
|
||||
from atat.models.portfolio import Portfolio
|
||||
from atat.models.portfolio_state_machine import (
|
||||
StateMachineMisconfiguredError,
|
||||
_stage_state_to_stage_name,
|
||||
_stage_to_classname,
|
||||
@@ -277,7 +277,7 @@ def test_state_machine_initialization(state_machine):
|
||||
|
||||
|
||||
@pytest.mark.state_machine
|
||||
@patch("atst.domain.csp.cloud.MockCloudProvider")
|
||||
@patch("atat.domain.csp.cloud.MockCloudProvider")
|
||||
def test_fsm_transition_start(
|
||||
mock_cloud_provider, state_machine: PortfolioStateMachine
|
||||
):
|
||||
|
@@ -1,21 +1,21 @@
|
||||
import pytest
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.exceptions import NotFoundError, UnauthorizedError
|
||||
from atst.domain.portfolios import (
|
||||
from atat.domain.exceptions import NotFoundError, UnauthorizedError
|
||||
from atat.domain.portfolios import (
|
||||
Portfolios,
|
||||
PortfolioError,
|
||||
PortfolioDeletionApplicationsExistError,
|
||||
PortfolioStateMachines,
|
||||
)
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.application_roles import ApplicationRoles
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.permission_sets import PermissionSets, PORTFOLIO_PERMISSION_SETS
|
||||
from atst.models.application_role import Status as ApplicationRoleStatus
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atst.models import FSMStates
|
||||
from atat.domain.portfolio_roles import PortfolioRoles
|
||||
from atat.domain.applications import Applications
|
||||
from atat.domain.application_roles import ApplicationRoles
|
||||
from atat.domain.environments import Environments
|
||||
from atat.domain.permission_sets import PermissionSets, PORTFOLIO_PERMISSION_SETS
|
||||
from atat.models.application_role import Status as ApplicationRoleStatus
|
||||
from atat.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atat.models import FSMStates
|
||||
|
||||
from tests.factories import (
|
||||
ApplicationFactory,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import pytest
|
||||
|
||||
from atst.domain.reports import Reports
|
||||
from atat.domain.reports import Reports
|
||||
from tests.factories import PortfolioFactory
|
||||
from decimal import Decimal
|
||||
|
||||
|
@@ -2,10 +2,10 @@ import pytest
|
||||
import pendulum
|
||||
from decimal import Decimal
|
||||
|
||||
from atst.domain.exceptions import AlreadyExistsError
|
||||
from atst.domain.task_orders import TaskOrders
|
||||
from atst.models import Attachment
|
||||
from atst.models.task_order import TaskOrder, SORT_ORDERING, Status
|
||||
from atat.domain.exceptions import AlreadyExistsError
|
||||
from atat.domain.task_orders import TaskOrders
|
||||
from atat.models import Attachment
|
||||
from atat.models.task_order import TaskOrder, SORT_ORDERING, Status
|
||||
from tests.factories import TaskOrderFactory, CLINFactory, PortfolioFactory
|
||||
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
import pytest
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.users import Users
|
||||
from atst.domain.exceptions import NotFoundError, AlreadyExistsError, UnauthorizedError
|
||||
from atst.utils import pick
|
||||
from atat.domain.users import Users
|
||||
from atat.domain.exceptions import NotFoundError, AlreadyExistsError, UnauthorizedError
|
||||
from atat.utils import pick
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
|
@@ -6,13 +6,13 @@ import factory
|
||||
from uuid import uuid4
|
||||
import pendulum
|
||||
|
||||
from atst.forms import data
|
||||
from atst.models import *
|
||||
from atst.models.mixins.state_machines import FSMStates
|
||||
from atat.forms import data
|
||||
from atat.models import *
|
||||
from atat.models.mixins.state_machines import FSMStates
|
||||
|
||||
from atst.domain.invitations import PortfolioInvitations
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atat.domain.invitations import PortfolioInvitations
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.portfolio_roles import PortfolioRoles
|
||||
|
||||
|
||||
def random_choice(choices):
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import uuid
|
||||
|
||||
from atst.forms.data import ENV_ROLES
|
||||
from atst.forms.application_member import *
|
||||
from atat.forms.data import ENV_ROLES
|
||||
from atat.forms.application_member import *
|
||||
|
||||
|
||||
def test_environment_form():
|
||||
|
@@ -2,7 +2,7 @@ import pytest
|
||||
from wtforms.fields import RadioField, FieldList, StringField
|
||||
from werkzeug.datastructures import ImmutableMultiDict
|
||||
|
||||
from atst.forms.forms import BaseForm, remove_empty_string
|
||||
from atat.forms.forms import BaseForm, remove_empty_string
|
||||
|
||||
|
||||
class FormWithChoices(BaseForm):
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
from werkzeug.datastructures import ImmutableMultiDict
|
||||
|
||||
from atst.forms.edit_user import EditUserForm
|
||||
from atat.forms.edit_user import EditUserForm
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
|
@@ -2,9 +2,9 @@ import pendulum
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from flask import current_app as app
|
||||
|
||||
from atst.forms.task_order import CLINForm, TaskOrderForm
|
||||
from atst.models import JEDICLINType
|
||||
from atst.utils.localization import translate
|
||||
from atat.forms.task_order import CLINForm, TaskOrderForm
|
||||
from atat.models import JEDICLINType
|
||||
from atat.utils.localization import translate
|
||||
|
||||
import tests.factories as factories
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
from wtforms.validators import ValidationError, StopValidation
|
||||
import pytest
|
||||
|
||||
from atst.forms.validators import *
|
||||
from atat.forms.validators import *
|
||||
|
||||
|
||||
class TestNumber:
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
from unittest.mock import Mock
|
||||
|
||||
from atst.domain.csp.cloud import AzureCloudProvider
|
||||
from atat.domain.csp.cloud import AzureCloudProvider
|
||||
|
||||
AZURE_CONFIG = {
|
||||
"AZURE_CALC_CLIENT_ID": "MOCK",
|
||||
|
@@ -1,7 +1,7 @@
|
||||
from atst.database import db
|
||||
from atat.database import db
|
||||
from tests.factories import UserFactory
|
||||
from atst.models.mixins.auditable import AuditableMixin
|
||||
from atst.domain.users import Users
|
||||
from atat.models.mixins.auditable import AuditableMixin
|
||||
from atat.domain.users import Users
|
||||
|
||||
|
||||
def test_logging_audit_event_on_create(mock_logger):
|
||||
|
@@ -1,8 +1,8 @@
|
||||
import pytest
|
||||
|
||||
from atst.domain.application_roles import ApplicationRoles
|
||||
from atst.models import ApplicationRoleStatus
|
||||
from atst.models import AuditEvent
|
||||
from atat.domain.application_roles import ApplicationRoles
|
||||
from atat.models import ApplicationRoleStatus
|
||||
from atat.models import AuditEvent
|
||||
|
||||
from tests.factories import (
|
||||
ApplicationFactory,
|
||||
|
@@ -1,9 +1,9 @@
|
||||
import pytest
|
||||
import pendulum
|
||||
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.models.audit_event import AuditEvent
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.environment_roles import EnvironmentRoles
|
||||
from atat.models.audit_event import AuditEvent
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
from atst.models import CLIN
|
||||
from atst.models.clin import JEDICLINType
|
||||
from atat.models import CLIN
|
||||
from atat.models.clin import JEDICLINType
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
import pytest
|
||||
|
||||
from atst.models import AuditEvent
|
||||
from atst.models.environment_role import CSPRole
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atat.models import AuditEvent
|
||||
from atat.models.environment_role import CSPRole
|
||||
from atat.domain.applications import Applications
|
||||
from atat.domain.environment_roles import EnvironmentRoles
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import pendulum
|
||||
|
||||
from atst.models import InvitationStatus, PortfolioRoleStatus
|
||||
from atat.models import InvitationStatus, PortfolioRoleStatus
|
||||
|
||||
from tests.factories import (
|
||||
PortfolioInvitationFactory,
|
||||
|
@@ -1,15 +1,15 @@
|
||||
import pytest
|
||||
import pendulum
|
||||
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.models import AuditEvent, InvitationStatus, PortfolioRoleStatus, CSPRole
|
||||
from atat.domain.environments import Environments
|
||||
from atat.domain.portfolios import Portfolios
|
||||
from atat.domain.portfolio_roles import PortfolioRoles
|
||||
from atat.domain.applications import Applications
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.models import AuditEvent, InvitationStatus, PortfolioRoleStatus, CSPRole
|
||||
|
||||
from tests.factories import *
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atat.domain.portfolio_roles import PortfolioRoles
|
||||
|
||||
|
||||
@pytest.mark.audit_log
|
||||
|
@@ -4,9 +4,9 @@ import pendulum
|
||||
from unittest.mock import patch, PropertyMock
|
||||
import pendulum
|
||||
|
||||
from atst.models import *
|
||||
from atst.models.clin import JEDICLINType
|
||||
from atst.models.task_order import TaskOrder, Status
|
||||
from atat.models import *
|
||||
from atat.models.clin import JEDICLINType
|
||||
from atat.models.task_order import TaskOrder, Status
|
||||
|
||||
from tests.factories import CLINFactory, TaskOrderFactory
|
||||
from tests.mocks import PDF_FILENAME
|
||||
@@ -72,8 +72,8 @@ def test_clin_sorting():
|
||||
|
||||
|
||||
class TestTaskOrderStatus:
|
||||
@patch("atst.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
def test_draft_status(self, is_signed, is_completed):
|
||||
# Given that I have a TO that is neither completed nor signed
|
||||
to = TaskOrderFactory.create()
|
||||
@@ -82,10 +82,10 @@ class TestTaskOrderStatus:
|
||||
|
||||
assert to.status == Status.DRAFT
|
||||
|
||||
@patch("atst.models.TaskOrder.end_date", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.start_date", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.end_date", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.start_date", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
def test_active_status(self, is_signed, is_completed, start_date, end_date):
|
||||
today = pendulum.today(tz="UTC").date()
|
||||
|
||||
@@ -110,10 +110,10 @@ class TestTaskOrderStatus:
|
||||
|
||||
assert to_2.status == Status.ACTIVE
|
||||
|
||||
@patch("atst.models.TaskOrder.end_date", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.start_date", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.end_date", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.start_date", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
def test_upcoming_status(self, is_signed, is_completed, start_date, end_date):
|
||||
# Given that I have a signed TO and today is before its start_date
|
||||
to = TaskOrderFactory.create()
|
||||
@@ -125,10 +125,10 @@ class TestTaskOrderStatus:
|
||||
# Its status should be upcoming
|
||||
assert to.status == Status.UPCOMING
|
||||
|
||||
@patch("atst.models.TaskOrder.start_date", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.end_date", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.start_date", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.end_date", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
def test_expired_status(self, is_signed, is_completed, end_date, start_date):
|
||||
# Given that I have a signed TO and today is after its expiration date
|
||||
to = TaskOrderFactory.create()
|
||||
@@ -140,8 +140,8 @@ class TestTaskOrderStatus:
|
||||
# Its status should be expired
|
||||
assert to.status == Status.EXPIRED
|
||||
|
||||
@patch("atst.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atst.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_completed", new_callable=PropertyMock)
|
||||
@patch("atat.models.TaskOrder.is_signed", new_callable=PropertyMock)
|
||||
def test_unsigned_status(self, is_signed, is_completed):
|
||||
# Given that I have a TO that is completed but not signed
|
||||
to = TaskOrder(signed_at=pendulum.now().subtract(days=1))
|
||||
|
@@ -2,9 +2,9 @@ import pytest
|
||||
from sqlalchemy.exc import InternalError
|
||||
import pendulum
|
||||
|
||||
from atst.database import db
|
||||
from atst.domain.users import Users
|
||||
from atst.models.user import User
|
||||
from atat.database import db
|
||||
from atat.domain.users import Users
|
||||
from atat.models.user import User
|
||||
|
||||
from tests.factories import UserFactory, ApplicationFactory, ApplicationRoleFactory
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
from threading import Thread
|
||||
|
||||
from atst.domain.exceptions import ClaimFailedException
|
||||
from atst.models.utils import claim_for_update, claim_many_for_update
|
||||
from atat.domain.exceptions import ClaimFailedException
|
||||
from atat.models.utils import claim_for_update, claim_many_for_update
|
||||
|
||||
from tests.factories import EnvironmentFactory
|
||||
|
||||
|
@@ -7,11 +7,11 @@ from wtforms.fields import StringField
|
||||
from wtforms.validators import InputRequired
|
||||
from wtforms.widgets import ListWidget, CheckboxInput
|
||||
|
||||
from atst.forms.task_order import CLINForm
|
||||
from atst.forms.task_order import TaskOrderForm
|
||||
from atst.models import Permissions
|
||||
from atst.routes.task_orders.new import render_task_orders_edit
|
||||
from atst.utils.context_processors import user_can_view
|
||||
from atat.forms.task_order import CLINForm
|
||||
from atat.forms.task_order import TaskOrderForm
|
||||
from atat.models import Permissions
|
||||
from atat.routes.task_orders.new import render_task_orders_edit
|
||||
from atat.utils.context_processors import user_can_view
|
||||
|
||||
from tests import factories
|
||||
|
||||
|
@@ -2,9 +2,9 @@ from flask import url_for, get_flashed_messages
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atat.domain.applications import Applications
|
||||
from atat.domain.portfolios import Portfolios
|
||||
from atat.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
|
||||
from tests.utils import captured_templates
|
||||
|
||||
|
@@ -7,8 +7,8 @@ from tests.factories import (
|
||||
ApplicationRoleFactory,
|
||||
)
|
||||
from unittest.mock import Mock
|
||||
from atst.forms.data import ENV_ROLE_NO_ACCESS as NO_ACCESS
|
||||
from atst.models.application_invitation import ApplicationInvitation
|
||||
from atat.forms.data import ENV_ROLE_NO_ACCESS as NO_ACCESS
|
||||
from atat.models.application_invitation import ApplicationInvitation
|
||||
|
||||
|
||||
def test_get_name_and_description_form(client, user_session):
|
||||
@@ -134,7 +134,7 @@ def test_get_members(client, session, user_session):
|
||||
|
||||
def test_post_new_member(monkeypatch, client, user_session, session):
|
||||
job_mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail.delay", job_mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail.delay", job_mock)
|
||||
user = UserFactory.create()
|
||||
application = ApplicationFactory.create(
|
||||
environments=[{"name": "Naboo"}, {"name": "Endor"}]
|
||||
|
@@ -9,26 +9,26 @@ from tests.mock_azure import mock_azure
|
||||
from tests.utils import captured_templates
|
||||
from werkzeug.datastructures import ImmutableMultiDict
|
||||
|
||||
from atst.database import db
|
||||
from atst.domain.application_roles import ApplicationRoles
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.common import Paginator
|
||||
from atst.domain.csp.cloud.azure_cloud_provider import AzureCloudProvider
|
||||
from atst.domain.csp.cloud.exceptions import GeneralCSPException
|
||||
from atst.domain.csp.cloud.models import (
|
||||
from atat.database import db
|
||||
from atat.domain.application_roles import ApplicationRoles
|
||||
from atat.domain.applications import Applications
|
||||
from atat.domain.common import Paginator
|
||||
from atat.domain.csp.cloud.azure_cloud_provider import AzureCloudProvider
|
||||
from atat.domain.csp.cloud.exceptions import GeneralCSPException
|
||||
from atat.domain.csp.cloud.models import (
|
||||
SubscriptionCreationCSPResult,
|
||||
SubscriptionCreationCSPPayload,
|
||||
)
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.domain.invitations import ApplicationInvitations
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.forms.application import EditEnvironmentForm
|
||||
from atst.forms.application_member import UpdateMemberForm
|
||||
from atst.forms.data import ENV_ROLE_NO_ACCESS as NO_ACCESS
|
||||
from atst.models.application_role import Status as ApplicationRoleStatus
|
||||
from atst.models.environment_role import CSPRole, EnvironmentRole
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.routes.applications.settings import (
|
||||
from atat.domain.environment_roles import EnvironmentRoles
|
||||
from atat.domain.invitations import ApplicationInvitations
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.forms.application import EditEnvironmentForm
|
||||
from atat.forms.application_member import UpdateMemberForm
|
||||
from atat.forms.data import ENV_ROLE_NO_ACCESS as NO_ACCESS
|
||||
from atat.models.application_role import Status as ApplicationRoleStatus
|
||||
from atat.models.environment_role import CSPRole, EnvironmentRole
|
||||
from atat.models.permissions import Permissions
|
||||
from atat.routes.applications.settings import (
|
||||
build_subscription_payload,
|
||||
filter_env_roles_data,
|
||||
filter_env_roles_form_data,
|
||||
@@ -390,7 +390,7 @@ def test_delete_environment(client, user_session):
|
||||
|
||||
def test_create_member(monkeypatch, client, user_session, session):
|
||||
job_mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail.delay", job_mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail.delay", job_mock)
|
||||
user = UserFactory.create()
|
||||
application = ApplicationFactory.create(
|
||||
environments=[{"name": "Naboo"}, {"name": "Endor"}]
|
||||
@@ -667,8 +667,8 @@ def test_filter_env_roles_data():
|
||||
@pytest.fixture
|
||||
def set_g(monkeypatch):
|
||||
_g = Mock()
|
||||
monkeypatch.setattr("atst.app.g", _g)
|
||||
monkeypatch.setattr("atst.routes.applications.settings.g", _g)
|
||||
monkeypatch.setattr("atat.app.g", _g)
|
||||
monkeypatch.setattr("atat.routes.applications.settings.g", _g)
|
||||
|
||||
def _set_g(attr, val):
|
||||
setattr(_g, attr, val)
|
||||
@@ -684,7 +684,7 @@ def test_handle_create_member(monkeypatch, set_g, session):
|
||||
(env, env_1) = application.environments
|
||||
|
||||
job_mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail.delay", job_mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail.delay", job_mock)
|
||||
set_g("current_user", application.portfolio.owner)
|
||||
set_g("portfolio", application.portfolio)
|
||||
set_g("application", application)
|
||||
@@ -756,7 +756,7 @@ def test_handle_update_member_with_error(set_g, monkeypatch, mock_logger):
|
||||
raise GeneralCSPException(exception)
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.environments.Environments.update_env_role", _raise_csp_exception
|
||||
"atat.domain.environments.Environments.update_env_role", _raise_csp_exception
|
||||
)
|
||||
|
||||
user = UserFactory.create()
|
||||
@@ -829,7 +829,7 @@ def test_create_subscription_failure(client, user_session, monkeypatch):
|
||||
raise GeneralCSPException("An error occurred.")
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.csp.cloud.MockCloudProvider.create_subscription",
|
||||
"atat.domain.csp.cloud.MockCloudProvider.create_subscription",
|
||||
_raise_csp_exception,
|
||||
)
|
||||
|
||||
|
@@ -2,12 +2,12 @@ import pytest
|
||||
from flask import url_for
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.portfolio_roles import PortfolioRoles
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atst.utils.localization import translate
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.portfolio_roles import PortfolioRoles
|
||||
from atat.domain.portfolios import Portfolios
|
||||
from atat.models.permissions import Permissions
|
||||
from atat.models.portfolio_role import Status as PortfolioRoleStatus
|
||||
from atat.utils.localization import translate
|
||||
|
||||
from tests.factories import PortfolioFactory, PortfolioRoleFactory, UserFactory
|
||||
|
||||
|
@@ -9,9 +9,9 @@ from tests.factories import (
|
||||
TaskOrderFactory,
|
||||
UserFactory,
|
||||
)
|
||||
from atst.utils.localization import translate
|
||||
from atst.domain.portfolios import Portfolios, PortfolioDeletionApplicationsExistError
|
||||
from atst.domain.portfolios.query import PortfoliosQuery
|
||||
from atat.utils.localization import translate
|
||||
from atat.domain.portfolios import Portfolios, PortfolioDeletionApplicationsExistError
|
||||
from atat.domain.portfolios.query import PortfoliosQuery
|
||||
|
||||
|
||||
def test_new_portfolio(client, user_session):
|
||||
|
@@ -3,9 +3,9 @@ from unittest.mock import Mock
|
||||
|
||||
from flask import url_for
|
||||
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.models import InvitationStatus, PortfolioRoleStatus
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atat.domain.portfolios import Portfolios
|
||||
from atat.models import InvitationStatus, PortfolioRoleStatus
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
@@ -45,7 +45,7 @@ def test_new_member_accepts_valid_invite(monkeypatch, client, user_session):
|
||||
invite = PortfolioInvitationFactory.create(role=role, dod_id=user_info["dod_id"])
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.auth.should_redirect_to_user_profile", lambda *args: False
|
||||
"atat.domain.auth.should_redirect_to_user_profile", lambda *args: False
|
||||
)
|
||||
user_session(UserFactory.create(dod_id=user_info["dod_id"]))
|
||||
response = client.get(
|
||||
@@ -188,7 +188,7 @@ def test_user_can_only_resend_invites_in_their_portfolio(
|
||||
monkeypatch, client, user_session
|
||||
):
|
||||
job_mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail.delay", job_mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail.delay", job_mock)
|
||||
portfolio = PortfolioFactory.create()
|
||||
other_portfolio = PortfolioFactory.create()
|
||||
user = UserFactory.create()
|
||||
@@ -216,7 +216,7 @@ def test_user_can_only_resend_invites_in_their_portfolio(
|
||||
|
||||
def test_resend_invitation_sends_email(monkeypatch, client, user_session):
|
||||
job_mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail.delay", job_mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail.delay", job_mock)
|
||||
user = UserFactory.create()
|
||||
portfolio = PortfolioFactory.create()
|
||||
portfolio_role = PortfolioRoleFactory.create(
|
||||
@@ -264,7 +264,7 @@ def test_user_with_permission_has_add_member_link(client, user_session):
|
||||
|
||||
def test_invite_member(monkeypatch, client, user_session, session):
|
||||
job_mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail.delay", job_mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail.delay", job_mock)
|
||||
user_data = UserFactory.dictionary()
|
||||
portfolio = PortfolioFactory.create()
|
||||
user_session(portfolio.owner)
|
||||
|
@@ -1,12 +1,12 @@
|
||||
from flask import url_for
|
||||
import pytest
|
||||
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.domain.task_orders import TaskOrders
|
||||
from atst.models import *
|
||||
from atst.models.portfolio_role import Status as PortfolioStatus
|
||||
from atst.models.task_order import Status as TaskOrderStatus
|
||||
from atst.utils.localization import translate
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.domain.task_orders import TaskOrders
|
||||
from atat.models import *
|
||||
from atat.models.portfolio_role import Status as PortfolioStatus
|
||||
from atat.models.task_order import Status as TaskOrderStatus
|
||||
from atat.utils.localization import translate
|
||||
|
||||
from tests.factories import *
|
||||
from tests.utils import captured_templates
|
||||
|
@@ -3,9 +3,9 @@ from flask import url_for, get_flashed_messages
|
||||
import pendulum
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.domain.task_orders import TaskOrders
|
||||
from atst.models.task_order import Status as TaskOrderStatus
|
||||
from atst.models import TaskOrder
|
||||
from atat.domain.task_orders import TaskOrders
|
||||
from atat.models.task_order import Status as TaskOrderStatus
|
||||
from atat.models import TaskOrder
|
||||
|
||||
from tests.factories import CLINFactory, PortfolioFactory, TaskOrderFactory, UserFactory
|
||||
from tests.utils import captured_templates
|
||||
|
@@ -1,7 +1,7 @@
|
||||
from flask import url_for
|
||||
|
||||
from atst.domain.users import Users
|
||||
from atst.utils.localization import translate
|
||||
from atat.domain.users import Users
|
||||
from atat.utils.localization import translate
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
from flask import url_for
|
||||
|
||||
from atst.app import make_config, make_app
|
||||
from atat.app import make_config, make_app
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
|
@@ -3,14 +3,14 @@ import pytest
|
||||
from flask import url_for
|
||||
|
||||
from tests.factories import UserFactory
|
||||
from atst.utils.localization import translate
|
||||
from atat.utils.localization import translate
|
||||
|
||||
|
||||
def test_home_route(client, user_session):
|
||||
user = UserFactory.create()
|
||||
user_session(user)
|
||||
|
||||
response = client.get(url_for("atst.home"))
|
||||
response = client.get(url_for("atat.home"))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert translate("home.add_portfolio_button_text").encode("utf8") in response.data
|
||||
|
@@ -1,5 +1,5 @@
|
||||
from tests.factories import UserFactory, PortfolioFactory
|
||||
from atst.routes import match_url_pattern
|
||||
from atat.routes import match_url_pattern
|
||||
|
||||
|
||||
def test_root_redirects_if_user_is_logged_in(client, user_session):
|
||||
|
@@ -1,6 +1,6 @@
|
||||
from flask import url_for
|
||||
|
||||
from atst.domain.users import Users
|
||||
from atat.domain.users import Users
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
|
@@ -5,21 +5,21 @@ import random
|
||||
|
||||
from flask import url_for, Response
|
||||
|
||||
import atst
|
||||
from atst.app import make_app, make_config
|
||||
from atst.domain.auth import UNPROTECTED_ROUTES as _NO_LOGIN_REQUIRED
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.models import CSPRole, PortfolioRoleStatus, ApplicationRoleStatus
|
||||
import atat
|
||||
from atat.app import make_app, make_config
|
||||
from atat.domain.auth import UNPROTECTED_ROUTES as _NO_LOGIN_REQUIRED
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.models import CSPRole, PortfolioRoleStatus, ApplicationRoleStatus
|
||||
|
||||
from tests.factories import *
|
||||
|
||||
|
||||
from atst.app import make_config, make_app
|
||||
from atat.app import make_config, make_app
|
||||
|
||||
_NO_ACCESS_CHECK_REQUIRED = _NO_LOGIN_REQUIRED + [
|
||||
"applications.accept_invitation", # available to all users; access control is built into invitation logic
|
||||
"atst.catch_all", # available to all users
|
||||
"atst.home", # available to all users
|
||||
"atat.catch_all", # available to all users
|
||||
"atat.home", # available to all users
|
||||
"dev.messages", # dev tool
|
||||
"dev.test_email", # dev tool
|
||||
"portfolios.accept_invitation", # available to all users; access control is built into invitation logic
|
||||
@@ -62,23 +62,23 @@ def test_all_protected_routes_have_access_control(
|
||||
decorator.
|
||||
"""
|
||||
# monkeypatch any object lookups that might happen in the access decorator
|
||||
monkeypatch.setattr("atst.domain.portfolios.Portfolios.for_user", lambda *a: [])
|
||||
monkeypatch.setattr("atst.domain.portfolios.Portfolios.get", lambda *a: None)
|
||||
monkeypatch.setattr("atst.domain.task_orders.TaskOrders.get", lambda *a: Mock())
|
||||
monkeypatch.setattr("atst.domain.applications.Applications.get", lambda *a: Mock())
|
||||
monkeypatch.setattr("atat.domain.portfolios.Portfolios.for_user", lambda *a: [])
|
||||
monkeypatch.setattr("atat.domain.portfolios.Portfolios.get", lambda *a: None)
|
||||
monkeypatch.setattr("atat.domain.task_orders.TaskOrders.get", lambda *a: Mock())
|
||||
monkeypatch.setattr("atat.domain.applications.Applications.get", lambda *a: Mock())
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.invitations.PortfolioInvitations._get", lambda *a: Mock()
|
||||
"atat.domain.invitations.PortfolioInvitations._get", lambda *a: Mock()
|
||||
)
|
||||
monkeypatch.setattr("atst.app.assign_resources", lambda *a: None)
|
||||
monkeypatch.setattr("atat.app.assign_resources", lambda *a: None)
|
||||
|
||||
# monkeypatch the error handler
|
||||
monkeypatch.setattr(
|
||||
"atst.routes.errors.handle_error", lambda *a, **k: ("error", 500)
|
||||
"atat.routes.errors.handle_error", lambda *a, **k: ("error", 500)
|
||||
)
|
||||
|
||||
# patch the internal function the access decorator uses so that
|
||||
# we can check that it was called
|
||||
mocker.patch("atst.domain.authz.decorator.check_access")
|
||||
mocker.patch("atat.domain.authz.decorator.check_access")
|
||||
|
||||
user = UserFactory.create()
|
||||
user_session(user)
|
||||
@@ -87,7 +87,7 @@ def test_all_protected_routes_have_access_control(
|
||||
getattr(client, method)(route)
|
||||
|
||||
assert (
|
||||
atst.domain.authz.decorator.check_access.call_count == 1
|
||||
atat.domain.authz.decorator.check_access.call_count == 1
|
||||
), "no access control for {}".format(rule.endpoint)
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@ def post_url_assert_status(no_debug_client, user_session):
|
||||
|
||||
# ccpo.activity_history
|
||||
@pytest.mark.audit_log
|
||||
def test_atst_activity_history_access(get_url_assert_status):
|
||||
def test_atat_activity_history_access(get_url_assert_status):
|
||||
ccpo = user_with(PermissionSets.VIEW_AUDIT_LOG)
|
||||
rando = user_with()
|
||||
|
||||
@@ -608,7 +608,7 @@ def test_applications_resend_invite(post_url_assert_status):
|
||||
# task_orders.download_task_order_pdf
|
||||
def test_task_orders_download_task_order_pdf_access(get_url_assert_status, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
"atst.routes.task_orders.downloads.send_file", lambda a: Response("")
|
||||
"atat.routes.task_orders.downloads.send_file", lambda a: Response("")
|
||||
)
|
||||
ccpo = user_with(PermissionSets.VIEW_PORTFOLIO_FUNDING)
|
||||
owner = user_with()
|
||||
|
@@ -3,7 +3,7 @@ import os
|
||||
from configparser import ConfigParser
|
||||
import pytest
|
||||
|
||||
from atst.app import (
|
||||
from atat.app import (
|
||||
make_crl_validator,
|
||||
apply_config_from_directory,
|
||||
apply_config_from_environment,
|
||||
|
@@ -7,11 +7,11 @@ import pendulum
|
||||
from flask import session, url_for
|
||||
from cryptography.hazmat.primitives.serialization import Encoding
|
||||
|
||||
from atst.domain.users import Users
|
||||
from atst.domain.exceptions import NotFoundError
|
||||
from atst.domain.authnid.crl import CRLInvalidException
|
||||
from atst.domain.auth import UNPROTECTED_ROUTES
|
||||
from atst.domain.authnid.crl import CRLCache
|
||||
from atat.domain.users import Users
|
||||
from atat.domain.exceptions import NotFoundError
|
||||
from atat.domain.authnid.crl import CRLInvalidException
|
||||
from atat.domain.auth import UNPROTECTED_ROUTES
|
||||
from atat.domain.authnid.crl import CRLCache
|
||||
|
||||
from .factories import UserFactory
|
||||
from .mocks import DOD_SDN_INFO, DOD_SDN, FIXTURE_EMAIL_ADDRESS
|
||||
@@ -27,7 +27,7 @@ def _fetch_user_info(c, t):
|
||||
|
||||
def _login(client, verify="SUCCESS", sdn=DOD_SDN, cert="", **url_query_args):
|
||||
return client.get(
|
||||
url_for("atst.login_redirect", **url_query_args),
|
||||
url_for("atat.login_redirect", **url_query_args),
|
||||
environ_base={
|
||||
"HTTP_X_SSL_CLIENT_VERIFY": verify,
|
||||
"HTTP_X_SSL_CLIENT_S_DN": sdn,
|
||||
@@ -38,10 +38,10 @@ def _login(client, verify="SUCCESS", sdn=DOD_SDN, cert="", **url_query_args):
|
||||
|
||||
def test_successful_login_redirect(client, monkeypatch, mock_logger):
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
"atat.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.get_user",
|
||||
"atat.domain.authnid.AuthenticationContext.get_user",
|
||||
lambda *args: UserFactory.create(),
|
||||
)
|
||||
|
||||
@@ -56,7 +56,7 @@ def test_successful_login_redirect(client, monkeypatch, mock_logger):
|
||||
|
||||
|
||||
def test_unsuccessful_login_redirect(client, monkeypatch, mock_logger):
|
||||
resp = client.get(url_for("atst.login_redirect"))
|
||||
resp = client.get(url_for("atat.login_redirect"))
|
||||
|
||||
assert resp.status_code == 401
|
||||
assert "user_id" not in session
|
||||
@@ -97,12 +97,12 @@ def test_protected_routes_redirect_to_login(client, app):
|
||||
def test_unprotected_routes_set_user_if_logged_in(client, app, user_session):
|
||||
user = UserFactory.create()
|
||||
|
||||
resp = client.get(url_for("atst.about"))
|
||||
resp = client.get(url_for("atat.about"))
|
||||
assert resp.status_code == 200
|
||||
assert user.full_name not in resp.data.decode()
|
||||
|
||||
user_session(user)
|
||||
resp = client.get(url_for("atst.about"))
|
||||
resp = client.get(url_for("atat.about"))
|
||||
assert resp.status_code == 200
|
||||
assert user.full_name in resp.data.decode()
|
||||
|
||||
@@ -163,7 +163,7 @@ def test_crl_validation_on_login(
|
||||
|
||||
def test_creates_new_user_on_login(monkeypatch, client, ca_key):
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
"atat.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
)
|
||||
cert_file = open("tests/fixtures/{}.crt".format(FIXTURE_EMAIL_ADDRESS)).read()
|
||||
|
||||
@@ -200,22 +200,22 @@ def test_creates_new_user_without_email_on_login(
|
||||
def test_logout(app, client, monkeypatch, mock_logger):
|
||||
user = UserFactory.create()
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.authenticate", lambda s: True
|
||||
"atat.domain.authnid.AuthenticationContext.authenticate", lambda s: True
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.get_user", lambda s: user,
|
||||
"atat.domain.authnid.AuthenticationContext.get_user", lambda s: user,
|
||||
)
|
||||
# create a real session
|
||||
resp = _login(client)
|
||||
resp_success = client.get(url_for("users.user"))
|
||||
# verify session is valid
|
||||
assert resp_success.status_code == 200
|
||||
client.get(url_for("atst.logout"))
|
||||
client.get(url_for("atat.logout"))
|
||||
resp_failure = client.get(url_for("users.user"))
|
||||
# verify that logging out has cleared the session
|
||||
assert resp_failure.status_code == 302
|
||||
destination = urlparse(resp_failure.headers["Location"]).path
|
||||
assert destination == url_for("atst.root")
|
||||
assert destination == url_for("atat.root")
|
||||
# verify that logout is noted in the logs
|
||||
logout_msg = mock_logger.messages[-1]
|
||||
assert user.dod_id in logout_msg
|
||||
@@ -224,24 +224,24 @@ def test_logout(app, client, monkeypatch, mock_logger):
|
||||
|
||||
def test_logging_out_creates_a_flash_message(app, client, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.authenticate", lambda s: True
|
||||
"atat.domain.authnid.AuthenticationContext.authenticate", lambda s: True
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.get_user",
|
||||
"atat.domain.authnid.AuthenticationContext.get_user",
|
||||
lambda s: UserFactory.create(),
|
||||
)
|
||||
_login(client)
|
||||
logout_response = client.get(url_for("atst.logout"), follow_redirects=True)
|
||||
logout_response = client.get(url_for("atat.logout"), follow_redirects=True)
|
||||
|
||||
assert "Logged out" in logout_response.data.decode()
|
||||
|
||||
|
||||
def test_redirected_on_login(client, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
"atat.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.get_user",
|
||||
"atat.domain.authnid.AuthenticationContext.get_user",
|
||||
lambda *args: UserFactory.create(),
|
||||
)
|
||||
target_route = url_for("users.user")
|
||||
@@ -254,7 +254,7 @@ def test_error_on_invalid_crl(client, monkeypatch):
|
||||
raise CRLInvalidException()
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.authenticate", _raise_crl_error
|
||||
"atat.domain.authnid.AuthenticationContext.authenticate", _raise_crl_error
|
||||
)
|
||||
response = _login(client)
|
||||
assert response.status_code == 401
|
||||
@@ -265,10 +265,10 @@ def test_last_login_set_when_user_logs_in(client, monkeypatch):
|
||||
last_login = pendulum.now(tz="utc")
|
||||
user = UserFactory.create(last_login=last_login)
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
"atat.domain.authnid.AuthenticationContext.authenticate", lambda *args: True
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.authnid.AuthenticationContext.get_user", lambda *args: user
|
||||
"atat.domain.authnid.AuthenticationContext.get_user", lambda *args: user
|
||||
)
|
||||
_login(client)
|
||||
assert session["last_login"]
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
|
||||
from atst.filters import dollars, renderAuditEvent, usPhone
|
||||
from atst.models import AuditEvent
|
||||
from atat.filters import dollars, renderAuditEvent, usPhone
|
||||
from atat.models import AuditEvent
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
@@ -5,12 +5,12 @@ from unittest.mock import Mock, MagicMock
|
||||
from smtplib import SMTPException
|
||||
from azure.core.exceptions import AzureError
|
||||
|
||||
from atst.domain.csp.cloud import MockCloudProvider
|
||||
from atst.domain.csp.cloud.models import BillingInstructionCSPPayload, UserRoleCSPResult
|
||||
from atst.domain.portfolios import Portfolios
|
||||
from atst.models import ApplicationRoleStatus, Portfolio, FSMStates
|
||||
from atat.domain.csp.cloud import MockCloudProvider
|
||||
from atat.domain.csp.cloud.models import BillingInstructionCSPPayload, UserRoleCSPResult
|
||||
from atat.domain.portfolios import Portfolios
|
||||
from atat.models import ApplicationRoleStatus, Portfolio, FSMStates
|
||||
|
||||
from atst.jobs import (
|
||||
from atat.jobs import (
|
||||
RecordFailure,
|
||||
dispatch_create_environment,
|
||||
dispatch_create_application,
|
||||
@@ -38,8 +38,8 @@ from tests.factories import (
|
||||
TaskOrderFactory,
|
||||
UserFactory,
|
||||
)
|
||||
from atst.models import CSPRole, EnvironmentRole, ApplicationRoleStatus, JobFailure
|
||||
from atst.utils.localization import translate
|
||||
from atat.models import CSPRole, EnvironmentRole, ApplicationRoleStatus, JobFailure
|
||||
from atat.utils.localization import translate
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, scope="function")
|
||||
@@ -191,7 +191,7 @@ class TestCreateUserJob:
|
||||
|
||||
def test_create_user_sends_email(self, monkeypatch, csp, app_role_1, app_role_2):
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail", mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail", mock)
|
||||
|
||||
do_create_user(csp, [app_role_1.id, app_role_2.id])
|
||||
assert mock.call_count == 1
|
||||
@@ -219,7 +219,7 @@ def test_dispatch_create_environment(session, monkeypatch):
|
||||
session.commit()
|
||||
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.create_environment", mock)
|
||||
monkeypatch.setattr("atat.jobs.create_environment", mock)
|
||||
|
||||
# When dispatch_create_environment is called
|
||||
dispatch_create_environment.run()
|
||||
@@ -234,7 +234,7 @@ def test_dispatch_create_application(monkeypatch):
|
||||
app = ApplicationFactory.create(portfolio=portfolio)
|
||||
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.create_application", mock)
|
||||
monkeypatch.setattr("atat.jobs.create_application", mock)
|
||||
|
||||
# When dispatch_create_application is called
|
||||
dispatch_create_application.run()
|
||||
@@ -257,7 +257,7 @@ def test_dispatch_create_user(monkeypatch):
|
||||
)
|
||||
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.create_user", mock)
|
||||
monkeypatch.setattr("atat.jobs.create_user", mock)
|
||||
|
||||
# When dispatch_create_user is called
|
||||
dispatch_create_user.run()
|
||||
@@ -314,7 +314,7 @@ def test_dispatch_provision_portfolio(csp, monkeypatch):
|
||||
)
|
||||
sm = PortfolioStateMachineFactory.create(portfolio=portfolio)
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.provision_portfolio", mock)
|
||||
monkeypatch.setattr("atat.jobs.provision_portfolio", mock)
|
||||
dispatch_provision_portfolio.run()
|
||||
mock.delay.assert_called_once_with(portfolio_id=portfolio.id)
|
||||
|
||||
@@ -329,7 +329,7 @@ class TestDoProvisionPortfolio:
|
||||
self, monkeypatch, csp, portfolio: Portfolio
|
||||
):
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_PPOC_email", mock)
|
||||
monkeypatch.setattr("atat.jobs.send_PPOC_email", mock)
|
||||
|
||||
csp._authorize.return_value = None
|
||||
csp._maybe_raise.return_value = None
|
||||
@@ -346,7 +346,7 @@ class TestDoProvisionPortfolio:
|
||||
|
||||
def test_send_ppoc_email(monkeypatch, app):
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail", mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail", mock)
|
||||
|
||||
ppoc_email = "example@example.com"
|
||||
user_id = "user_id"
|
||||
@@ -377,7 +377,7 @@ def test_provision_portfolio_create_tenant(
|
||||
):
|
||||
sm = PortfolioStateMachineFactory.create(portfolio=portfolio)
|
||||
# mock = Mock()
|
||||
# monkeypatch.setattr("atst.jobs.provision_portfolio", mock)
|
||||
# monkeypatch.setattr("atat.jobs.provision_portfolio", mock)
|
||||
# dispatch_provision_portfolio.run()
|
||||
# mock.delay.assert_called_once_with(portfolio_id=portfolio.id)
|
||||
|
||||
@@ -392,7 +392,7 @@ def test_dispatch_create_environment_role(monkeypatch):
|
||||
env_role = EnvironmentRoleFactory.create(application_role=app_role)
|
||||
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.create_environment_role", mock)
|
||||
monkeypatch.setattr("atat.jobs.create_environment_role", mock)
|
||||
|
||||
dispatch_create_environment_role.run()
|
||||
|
||||
@@ -425,7 +425,7 @@ class TestCreateEnvironmentRole:
|
||||
|
||||
def test_sends_email(self, monkeypatch, env_role, csp):
|
||||
send_mail = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail", send_mail)
|
||||
monkeypatch.setattr("atat.jobs.send_mail", send_mail)
|
||||
do_create_environment_role(csp, environment_role_id=env_role.id)
|
||||
assert send_mail.call_count == 1
|
||||
|
||||
@@ -434,7 +434,7 @@ class TestSendTaskOrderFiles:
|
||||
@pytest.fixture(scope="function")
|
||||
def send_mail(self, monkeypatch):
|
||||
mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_mail", mock)
|
||||
monkeypatch.setattr("atat.jobs.send_mail", mock)
|
||||
return mock
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
@@ -443,7 +443,7 @@ class TestSendTaskOrderFiles:
|
||||
return {"name": object_name}
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.csp.files.MockFileService.download_task_order",
|
||||
"atat.domain.csp.files.MockFileService.download_task_order",
|
||||
_download_task_order,
|
||||
)
|
||||
|
||||
@@ -484,7 +484,7 @@ class TestSendTaskOrderFiles:
|
||||
def _raise_smtp_exception(**kwargs):
|
||||
raise SMTPException
|
||||
|
||||
monkeypatch.setattr("atst.jobs.send_mail", _raise_smtp_exception)
|
||||
monkeypatch.setattr("atat.jobs.send_mail", _raise_smtp_exception)
|
||||
task_order = TaskOrderFactory.create(create_clins=[{"number": "0001"}])
|
||||
send_task_order_files.run()
|
||||
|
||||
@@ -496,7 +496,7 @@ class TestSendTaskOrderFiles:
|
||||
raise AzureError("something went wrong")
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.csp.files.MockFileService.download_task_order",
|
||||
"atat.domain.csp.files.MockFileService.download_task_order",
|
||||
_download_task_order,
|
||||
)
|
||||
task_order = TaskOrderFactory.create(create_clins=[{"number": "0002"}])
|
||||
@@ -536,7 +536,7 @@ class TestCreateBillingInstructions:
|
||||
raise AzureError("something went wrong")
|
||||
|
||||
monkeypatch.setattr(
|
||||
"atst.domain.csp.cloud.MockCloudProvider.create_billing_instruction",
|
||||
"atat.domain.csp.cloud.MockCloudProvider.create_billing_instruction",
|
||||
_create_billing_instruction,
|
||||
)
|
||||
|
||||
|
@@ -7,7 +7,7 @@ from cryptography.hazmat.backends import default_backend
|
||||
from flask import template_rendered
|
||||
import pendulum
|
||||
|
||||
from atst.utils.notification_sender import NotificationSender
|
||||
from atat.utils.notification_sender import NotificationSender
|
||||
|
||||
import tests.factories as factories
|
||||
|
||||
|
@@ -2,9 +2,9 @@ from unittest.mock import Mock
|
||||
|
||||
import pytest
|
||||
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.models import Permissions
|
||||
from atst.utils.context_processors import (
|
||||
from atat.domain.permission_sets import PermissionSets
|
||||
from atat.models import Permissions
|
||||
from atat.utils.context_processors import (
|
||||
get_resources_from_context,
|
||||
user_can_view,
|
||||
portfolio as portfolio_context,
|
||||
@@ -37,7 +37,7 @@ def test_get_resources_from_context():
|
||||
@pytest.fixture
|
||||
def set_g(monkeypatch):
|
||||
_g = Mock()
|
||||
monkeypatch.setattr("atst.utils.context_processors.g", _g)
|
||||
monkeypatch.setattr("atat.utils.context_processors.g", _g)
|
||||
|
||||
def _set_g(attr, val):
|
||||
setattr(_g, attr, val)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from atst.utils.flash import formatted_flash as flash
|
||||
from atat.utils.flash import formatted_flash as flash
|
||||
from flask import get_flashed_messages
|
||||
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import pytest
|
||||
from werkzeug.datastructures import ImmutableMultiDict
|
||||
|
||||
from atst.utils.form_cache import DEFAULT_CACHE_NAME, FormCache
|
||||
from atat.utils.form_cache import DEFAULT_CACHE_NAME, FormCache
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@@ -2,7 +2,7 @@ import random
|
||||
import re
|
||||
import string
|
||||
|
||||
from atst.utils import sha256_hex
|
||||
from atat.utils import sha256_hex
|
||||
|
||||
|
||||
def test_sha256_hex():
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import json
|
||||
from atst.utils.json import CustomJSONEncoder
|
||||
from atat.utils.json import CustomJSONEncoder
|
||||
|
||||
from tests.factories import AttachmentFactory
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import pytest
|
||||
from atst.utils.localization import all_keys, translate, LocalizationInvalidKeyError
|
||||
from atat.utils.localization import all_keys, translate, LocalizationInvalidKeyError
|
||||
|
||||
|
||||
def test_looking_up_existing_key():
|
||||
|
@@ -6,7 +6,7 @@ from unittest.mock import Mock
|
||||
|
||||
import pytest
|
||||
|
||||
from atst.utils.logging import JsonFormatter, RequestContextFilter
|
||||
from atat.utils.logging import JsonFormatter, RequestContextFilter
|
||||
|
||||
from tests.factories import UserFactory
|
||||
|
||||
@@ -71,8 +71,8 @@ def test_request_context_filter(logger, log_stream_content, request_ctx, monkeyp
|
||||
user.id = user_uuid
|
||||
user.dod_id = "5678901234"
|
||||
|
||||
monkeypatch.setattr("atst.utils.logging.g", Mock(current_user=user))
|
||||
monkeypatch.setattr("atst.utils.logging.session", {"user_id": user_uuid})
|
||||
monkeypatch.setattr("atat.utils.logging.g", Mock(current_user=user))
|
||||
monkeypatch.setattr("atat.utils.logging.session", {"user_id": user_uuid})
|
||||
request_ctx.request.environ["HTTP_X_REQUEST_ID"] = request_uuid
|
||||
logger.info("this user is doing something")
|
||||
log = json.loads(log_stream_content())
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import pytest
|
||||
from atst.utils.mailer import (
|
||||
from atat.utils.mailer import (
|
||||
Mailer,
|
||||
MailConnection,
|
||||
RedisConnection,
|
||||
)
|
||||
from atst.utils.localization import translate
|
||||
from atat.utils.localization import translate
|
||||
from email.mime.base import MIMEBase
|
||||
|
||||
|
||||
|
@@ -2,7 +2,7 @@ import pytest
|
||||
from unittest.mock import Mock
|
||||
|
||||
from tests.factories import NotificationRecipientFactory
|
||||
from atst.utils.notification_sender import NotificationSender
|
||||
from atat.utils.notification_sender import NotificationSender
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -12,7 +12,7 @@ def notification_sender():
|
||||
|
||||
def test_can_send_notification(monkeypatch, notification_sender):
|
||||
job_mock = Mock()
|
||||
monkeypatch.setattr("atst.jobs.send_notification_mail.delay", job_mock)
|
||||
monkeypatch.setattr("atat.jobs.send_notification_mail.delay", job_mock)
|
||||
recipient_email = "test@example.com"
|
||||
email_body = "This is a test"
|
||||
|
||||
|
@@ -3,9 +3,9 @@ from redis import Redis
|
||||
from unittest.mock import Mock
|
||||
from uuid import uuid4
|
||||
|
||||
from atst.utils.session_limiter import SessionLimiter
|
||||
from atat.utils.session_limiter import SessionLimiter
|
||||
from tests.factories import UserFactory
|
||||
from atst.models.user import User
|
||||
from atat.models.user import User
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
Reference in New Issue
Block a user