# Path: tests/fixtures/jewel.py
# class Jewel(object):
#     def __init__(self, name, carat):
#         self.name = name
#         self.carat = carat
# 
# Path: tests/fixtures/painting.py
# class Painting(object):
#     def __init__(self, name, author):
#         self.name = name
#         self.author = author
# 
# Path: tests/fixtures/money.py
# class Money(object):
#     def __init__(self, currency, amount):
#         self.currency = name
#         self.amount = carat


import pytest
from lupin import PolymorphicList, Mapper
from lupin.errors import InvalidType, InvalidDocument, MissingPolymorphicKey,\
    InvalidPolymorphicType
from tests.fixtures import Jewel, Painting, Money




@pytest.fixture
def mapper():
    return Mapper()

@pytest.fixture
def field(mapper, jewel_schema, painting_schema, money_schema):
    mapper.register(Jewel, jewel_schema)
    mapper.register(Painting, painting_schema)

# Path: tests/fixtures/jewel.py
# class Jewel(object):
#     def __init__(self, name, carat):
#         self.name = name
#         self.carat = carat
# 
# Path: tests/fixtures/painting.py
# class Painting(object):
#     def __init__(self, name, author):
#         self.name = name
#         self.author = author
# 
# Path: tests/fixtures/money.py
# class Money(object):
#     def __init__(self, currency, amount):
#         self.currency = name
#         self.amount = carat


# Path: tests/lupin/fields/test_polymorphic_list.py
import pytest
from lupin import PolymorphicList, Mapper
from lupin.errors import InvalidType, InvalidDocument, MissingPolymorphicKey,\
    InvalidPolymorphicType
from tests.fixtures import Jewel, Painting, Money





@pytest.fixture
def mapper():
    return Mapper()

@pytest.fixture
def field(mapper, jewel_schema, painting_schema, money_schema):
    mapper.register(Jewel, jewel_schema)
    mapper.register(Painting, painting_schema)

    mapper.register(Money, money_schema)