Last active
July 17, 2024 00:01
-
-
Save huogerac/6da72feff78a87a87f9483a11f167471 to your computer and use it in GitHub Desktop.
testando listar pedido de estoque
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pytest | |
from embalae.accounts.models import User, Fornecedor, Marca, Unidade | |
@pytest.fixture | |
def marca1(db): | |
marca_um = Marca.objects.create(nome="Marca 1", slug="Marca1") | |
Unidade.objects.create(nome="Marca 1-U1", marca=marca_um) | |
return marca_um | |
@pytest.fixture | |
def marca2(db): | |
marca_dois = Marca.objects.create(nome="Marca 2", slug="Marca2") | |
Unidade.objects.create(nome="Marca 2-U1", marca=marca_dois) | |
Unidade.objects.create(nome="Marca 2-U2", marca=marca_dois) | |
return marca_dois | |
@pytest.fixture | |
def user_admin_marca1(db, marca1): | |
admin1 = User.objects.create_user( | |
username="admin1", | |
first_name="Admin Marca 1", | |
last_name="Adm1", | |
email="[email protected]", | |
is_representante=True, | |
is_superuser=True, | |
) | |
for u in Unidade.objects.filter(marca=marca1): | |
u.representantes.add(admin1) | |
admin1.unidade_padrao = u | |
admin1.save() | |
return admin1 | |
@pytest.fixture | |
def user_admin_marca2(db, marca2): | |
admin2 = User.objects.create_user( | |
username="admin2", | |
first_name="Admin Marca 2", | |
last_name="Adm2", | |
email="[email protected]", | |
is_representante=True, | |
) | |
for u in Unidade.objects.filter(marca=marca2): | |
u.representantes.add(admin2) | |
admin2.unidade_padrao = u | |
admin2.save() | |
return admin2 | |
@pytest.fixture | |
def grafica(db): | |
nova_grafica = Fornecedor.objects.create(nome="Grafica") | |
return nova_grafica | |
@pytest.fixture | |
def user_grafica(db, grafica): | |
ze = User.objects.create_user( | |
username="ze_papel", | |
first_name="Ze", | |
last_name="Papel", | |
email="[email protected]", | |
is_fornecedor=True, | |
fornecedor_padrao=grafica, | |
) | |
grafica.responsavel.add(ze) | |
return ze | |
@pytest.fixture | |
def user_delivery(db): | |
jon = User.objects.create_user( | |
username="jon", | |
first_name="Jon", | |
last_name="Snow", | |
email="[email protected]", | |
password="snow", | |
is_delivery=True, | |
) | |
return jon |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pytest | |
from embalae.estoque.models import ( | |
Categoria, | |
Produto, | |
PedidoEstoque, | |
PedidoEstoqueItem, | |
) | |
from embalae.estoque.service import entregas_service | |
@pytest.mark.django_db | |
def test_deve_listar_um_produto_da_marca(marca1, user_admin_marca1, grafica): | |
# Dado um produto e seu estoque disponível | |
sacolas = Categoria.objects.create(categoria="Sacolas") | |
sacola = Produto.objects.create( | |
nome="Sacola Delivery", categoria=sacolas, marca=marca1, fornecedor=grafica | |
) | |
estoque_grafica1 = PedidoEstoque.objects.create( | |
fornecedor=grafica, | |
marca=marca1, | |
criado_por=user_admin_marca1, | |
) | |
estoque_sacola = PedidoEstoqueItem.objects.create( | |
pedido_estoque=estoque_grafica1, | |
produto=sacola, | |
valor_unitario=1.22, | |
status=PedidoEstoqueItem.STATUS_NOVO, | |
quantidade_pedido=5000, | |
quantidade_disponivel=0, | |
lote="Lote1", | |
) | |
# Quando fazemos um pedido de entrega | |
lista_estoque = entregas_service.obter_novo_estoque(user=user_admin_marca1) | |
assert len(lista_estoque) == 1 | |
assert lista_estoque.first() == estoque_sacola | |
@pytest.mark.django_db | |
def test_deve_listar_um_produto_do_fornecedor(marca1, grafica, user_grafica): | |
# Dado um produto e seu estoque disponível | |
sacolas = Categoria.objects.create(categoria="Sacolas") | |
sacola = Produto.objects.create( | |
nome="Sacola Delivery", categoria=sacolas, marca=marca1, fornecedor=grafica | |
) | |
estoque_grafica1 = PedidoEstoque.objects.create( | |
fornecedor=grafica, | |
marca=marca1, | |
criado_por=user_grafica, | |
) | |
estoque_sacola = PedidoEstoqueItem.objects.create( | |
pedido_estoque=estoque_grafica1, | |
produto=sacola, | |
valor_unitario=1.22, | |
status=PedidoEstoqueItem.STATUS_NOVO, | |
quantidade_pedido=5000, | |
quantidade_disponivel=0, | |
lote="Lote1", | |
) | |
# Quando fazemos um pedido de entrega | |
lista_estoque = entregas_service.obter_novo_estoque(user=user_grafica) | |
assert len(lista_estoque) == 1 | |
assert lista_estoque.first() == estoque_sacola | |
@pytest.mark.django_db | |
def test_deve_listar_estoque_do_delivery_correto(marca1, marca2, grafica, user_admin_marca1, user_delivery_marca1): | |
# Dado um produto e seu estoque disponível | |
sacolas = Categoria.objects.create(categoria="Sacolas") | |
sacola1 = Produto.objects.create( | |
nome="Sacola Delivery M1", categoria=sacolas, marca=marca1, fornecedor=grafica | |
) | |
sacola2 = Produto.objects.create( | |
nome="Sacola Delivery M2", categoria=sacolas, marca=marca2, fornecedor=grafica | |
) | |
estoque_grafica1 = PedidoEstoque.objects.create(fornecedor=grafica, marca=marca1, criado_por=user_admin_marca1) | |
estoque_sacola1 = PedidoEstoqueItem.objects.create( | |
pedido_estoque=estoque_grafica1, | |
produto=sacola1, | |
valor_unitario=1.22, | |
status=PedidoEstoqueItem.STATUS_NOVO, | |
quantidade_pedido=5000, | |
quantidade_disponivel=0, | |
lote="Lote1", | |
) | |
estoque_grafica2 = PedidoEstoque.objects.create(fornecedor=grafica, marca=marca2, criado_por=user_admin_marca1) | |
estoque_sacola2 = PedidoEstoqueItem.objects.create( | |
pedido_estoque=estoque_grafica1, | |
produto=sacola2, | |
valor_unitario=1.22, | |
status=PedidoEstoqueItem.STATUS_NOVO, | |
quantidade_pedido=15000, | |
quantidade_disponivel=0, | |
lote="Lote2", | |
) | |
# Quando fazemos um pedido de entrega | |
lista_estoque = entregas_service.obter_novo_estoque(user=user_delivery_marca1) | |
assert len(lista_estoque) == 1 | |
assert lista_estoque.first() == estoque_sacola1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment