Exemple #1
0
    def add(self, user: User):
        self._users.append(user)
        id = self.uuid_generator.make()

        writerow(
            self.csv_path,
            [
                id,
                user.name,
                user.status,
            ],
        )
        user.set_id(id)
Exemple #2
0
 def _from_csv(self) -> List[User]:
     loaded_users = []
     with self.csv_path.open("r") as f:
         reader = csv.DictReader(f)
         for row in reader:
             loaded_users.append(User(**row))
     return loaded_users
def test_create_new_user():
    uuid_gen = CustomUuid()
    user_repository = InMemoryUserRepository(uuid_generator=uuid_gen)
    create_new_user = CreateNewUser(user_repository)
    uuid_gen.set_next_uuid("pat_uuid")
    create_new_user.execute(name="patrice", status="active")
    assert len(user_repository.users) == 1
    expected_user = User(uuid="pat_uuid", name="patrice", status="active")
    assert user_repository.users == [expected_user]
def test_create_new_topic():
    uuid_topic, uuid_user = '******', 'topic_user'
    topic_name = "My first topic"
    uuid = CustomUuid()
    uuid.set_next_uuid(uuid_topic)
    topic_repo = InMemoryTopicRepository(uuid_generator=uuid)
    user = User(name='patrice', status='active', uuid=uuid_user)
    create_new_topic = CreateNewTopic(topic_repository=topic_repo)
    create_new_topic.execute(topic_name=topic_name, user=user)

    created_topic = topic_repo.get_all()[0]
    assert isinstance(created_topic, Topic), 'wrong type'
    assert created_topic.topic_name == topic_name, 'wrong name'
    assert created_topic.uuid == uuid_topic, "wrong uuid"
    assert created_topic.author_uuid == user.uuid, "wrong user"
Exemple #5
0
def test_can_get_all_topics_and_authors():
    client = ndb.Client()
    with client.context():
        repo_topic = NDBTopicRepository()
        repo_user = NDBUserRepository()

        my_user = User(name='nathan malnoury', status='active')
        repo_user.add(my_user)

        my_topic = Topic(topic_name='ant', author_uuid=my_user.id)
        repo_topic.add(my_topic)

        async_operation = repo_topic.async_get_all_topics_and_authors(
            user_repo=repo_user)
        res = async_operation.result()
        print(res)
 def add(self, user: User):
     ndb_user = UserNDB(name=user.name, status=user.status)
     ndb_user.put()
     user.set_id(ndb_user.id)
Exemple #7
0
from google.cloud import ndb

from adapters.datastore.ndb_user_repository import NDBUserRepository
from domain.ports import User

user = User(name="patrice bertrand", status="active")


def test_can_add_user():
    client = ndb.Client()
    with client.context():
        ndb_user_repository = NDBUserRepository()
        number_users_before_add = len(ndb_user_repository.get_all())
        ndb_user_repository.add(user)
        assert len(ndb_user_repository.get_all()) == number_users_before_add + 1


def test_can_get_user():
    client = ndb.Client()
    with client.context():
        ndb_user_repository = NDBUserRepository()
        user_from_ndb = ndb_user_repository.get(user.id)
        assert user_from_ndb == user


def test_can_get_all_users():
    client = ndb.Client()
    with client.context():
        all_users = NDBUserRepository().get_all()
        assert type(all_users) == list
        assert len(all_users) > 0
import csv
from pathlib import Path

from adapters.csv_user_repository import CsvUserRepository
from domain.ports import User
from domain.ports.uuid import CustomUuid
from helpers.csv import reset_file_from_path

csv_path = Path("tests/integration/data") / "user_repo.csv"
user_example = User(name="patrice", status="contact")


def test_can_add_user():
    reset_file_from_path(csv_path)
    uuid = CustomUuid()
    uuid.set_next_uuid("pat_uuid")
    csv_user_repository = CsvUserRepository(csv_path=csv_path, uuid_generator=uuid)
    csv_user_repository.add(user_example)

    with csv_path.open("r") as f:
        reader = csv.DictReader(f)
        assert list(reader)[0] == {
            "uuid": "pat_uuid",
            "name": "patrice",
            "status": "contact",
        }


def test_can_get_user_if_exists():
    reset_file_from_path(csv_path)
    uuid = CustomUuid()
Exemple #9
0
 def to_user(self):
     return User(name=self.name, status=self.status, uuid=self.id)
Exemple #10
0
 def get_all(self) -> List[User]:
     s = self.table.select()
     rows = self.connection.execute(s)
     return [User(*row) for row in rows]
Exemple #11
0
 def get(self, uuid: str) -> User:
     s = self.table.select().where(self.table.c.uuid == uuid)
     rows = self.connection.execute(s)
     return User(*list(rows)[0])
Exemple #12
0
    reset_db,
)
from adapters.postgres.pg_user_repository import PgUserRepository
from domain.ports import User


def prepare_db():
    # test_pg_url = "postgresql://*****:*****@postgres:5432/xq-db"
    engine = create_engine(
        test_pg_url,
        isolation_level="REPEATABLE READ",
    )
    reset_db(engine)
    initialize_db(engine)
    return engine


patrice_user = User(name="patrice", status="active", uuid="pat_uuid")
anne_user = User(name="anne", status="deleted", uuid="anne_uuid")


def test_get_from_pg_repo():
    engine = prepare_db()
    repo = PgUserRepository(
        engine=engine,
        table=user_table,
    )

    repo.add(patrice_user)
    repo.add(anne_user)