milvus/shards/mishards/factories.py
2019-10-21 16:21:32 +08:00

55 lines
1.8 KiB
Python

import time
import datetime
import random
import factory
from factory.alchemy import SQLAlchemyModelFactory
from faker import Faker
from faker.providers import BaseProvider
from milvus.client.types import MetricType
from mishards import db
from mishards.models import Tables, TableFiles
class FakerProvider(BaseProvider):
def this_date(self):
t = datetime.datetime.today()
return (t.year - 1900) * 10000 + (t.month - 1) * 100 + t.day
factory.Faker.add_provider(FakerProvider)
class TablesFactory(SQLAlchemyModelFactory):
class Meta:
model = Tables
sqlalchemy_session = db.session_factory
sqlalchemy_session_persistence = 'commit'
id = factory.Faker('random_number', digits=16, fix_len=True)
table_id = factory.Faker('uuid4')
state = factory.Faker('random_element', elements=(0, 1))
dimension = factory.Faker('random_element', elements=(256, 512))
created_on = int(time.time())
index_file_size = 0
engine_type = factory.Faker('random_element', elements=(0, 1, 2, 3))
metric_type = factory.Faker('random_element', elements=(MetricType.L2, MetricType.IP))
nlist = 16384
class TableFilesFactory(SQLAlchemyModelFactory):
class Meta:
model = TableFiles
sqlalchemy_session = db.session_factory
sqlalchemy_session_persistence = 'commit'
id = factory.Faker('random_number', digits=16, fix_len=True)
table = factory.SubFactory(TablesFactory)
engine_type = factory.Faker('random_element', elements=(0, 1, 2, 3))
file_id = factory.Faker('uuid4')
file_type = factory.Faker('random_element', elements=(0, 1, 2, 3, 4))
file_size = factory.Faker('random_number')
updated_time = int(time.time())
created_on = int(time.time())
date = factory.Faker('this_date')