class ProjectModel(MapModel): projectName = BaseField(field_type=str, required=True) class InstancesInfosModel(MapModel): ya = BaseField(field_type=str) instancesInfos = BaseField(field_type=InstancesInfosModel, required=False)
class BaseTableModel(TableDataModel): simpleFloatField = BaseField(field_type=float, required=False) class ContainerModel(MapModel): floatOne = BaseField(field_type=float, required=False) floatTwo = BaseField(field_type=float, required=False) floatsContainer = BaseField(field_type=ContainerModel, required=False)
class BaseTableModel(TableDataModel): simpleTextField = BaseField(field_type=str, required=False) class ContainerModel(MapModel): textFieldOne = BaseField(field_type=str, required=False) textFieldTwo = BaseField(field_type=str, required=False) container = BaseField(field_type=ContainerModel, required=False)
class BaseFirstTableModel(TableDataModel): simpleField = BaseField(field_type=str, required=False) class ContainerModel(MapModel): nestedFieldOne = BaseField(field_type=str, required=False) nestedFieldTwo = BaseField(field_type=str, required=False) container = BaseField(field_type=ContainerModel, required=False)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) class ContainerItem(MapModel): value = BaseField(field_type=int, required=False) container = BaseField(field_type=Dict[str, ContainerItem], key_name='itemId', required=False)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) class NestedObjectItem(MapModel): value = BaseField(field_type=int, required=False) nestedObject = BaseField(field_type=Dict[str, NestedObjectItem], key_name='nestedObjectId', required=False)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) class ContainerModel(MapModel): typedSet = BaseField(field_type=Set[str], key_name='setKey', required=False) container = BaseField(field_type=ContainerModel)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) fieldAlreadyInitializedRequiringNewValue = BaseField(field_type=str, required=False) class ContainerModel(MapModel): firstNestedValue = BaseField(field_type=str, required=False) class NestedContainerModel(MapModel): secondNestedValue = BaseField(field_type=str, required=False) nestedContainer = BaseField(field_type=Dict[str, NestedContainerModel], required=False) containerThatWillFailRequestAndRequireFieldsInitialization = BaseField(field_type=Dict[str, ContainerModel], key_name='id', required=False)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) class ItemModel(MapModel): itemName = BaseField(field_type=str, required=False) containerForItemsWithSharedParents = BaseField(field_type=Dict[str, ItemModel], key_name='itemId', required=False)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) class ItemWithMultipleAttributes(MapModel): name = BaseField(field_type=str, required=False) value = BaseField(field_type=str, required=False) timestamp = BaseField(field_type=(int, float), required=False) multiAttributesContainer = BaseField( field_type=Dict[str, ItemWithMultipleAttributes], key_name='itemKey', required=False)
class NestedFieldTableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) class PropertyModel(MapModel): name = BaseField(field_type=str) childProperties = BaseField(field_type=Dict[str, ActiveSelf], key_name="childPropertyKey{i}", required=False) properties = BaseField(field_type=Dict[str, PropertyModel], key_name="propertyKey", required=False)
class BaseTableModel(TableDataModel): type = BaseField(field_type=str, required=False) fieldOne = BaseField(field_type=str, required=False) fieldTwo = BaseField(field_type=str, required=False) class ContainerModel(MapModel): fieldOne = BaseField(field_type=str, required=False) fieldTwo = BaseField(field_type=str, required=False) fieldThree = BaseField(field_type=str, required=False) container = BaseField(field_type=Dict[str, ContainerModel], key_name='containerKey', required=False)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) nestedDictDictStructure = BaseField(field_type=Dict[str, Dict[str, bool]], required=False, key_name='itemKey') class NestedModelToIndex(MapModel): value = BaseField(field_type=str, required=False) nestedDictDictModelStructure = BaseField( field_type=Dict[str, Dict[str, NestedModelToIndex]], required=False, key_name='itemKey')
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) fieldToRemove = BaseField(field_type=str, required=False) class ContainerModel(MapModel): firstNestedValue = BaseField(field_type=str, required=False) secondNestedValue = BaseField(field_type=str, required=False) thirdNestedValue = BaseField(field_type=str, required=False) sophisticatedFieldToRemove = BaseField(field_type=Dict[str, ContainerModel], key_name='id', required=False)
def test_deletion_and_removal_limit_size(self): class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) container = BaseField(field_type=bool, required=False) table_model = TableModel() removers: Dict[str, FieldRemover] = dict() index = 0 while True: current_field_path = f"dummy{index}" removers[current_field_path] = FieldRemover(field_path=current_field_path) table_model.class_add_field( field_key=current_field_path, field_item=BaseField(field_type=bool, required=False) ) if getsizeof(removers) > (EXPRESSION_MAX_BYTES_SIZE * 1.5): break index += 1 users_table = PlaygroundDynamoDBBasicTable(data_model=table_model) # We initialize the table after having added all the fields to the class of the TableModel, so that # the indexing of the model will correctly be done on all the programmatically added fields. deletion_response = users_table.delete_multiple_fields(key_value=TEST_ACCOUNT_ID, removers=removers) self.assertTrue(all(deletion_response.values())) retrieved_removed_data = users_table.remove_multiple_fields(key_value=TEST_ACCOUNT_ID, removers=removers) self.assertIsNotNone(retrieved_removed_data)
class BaseTableModel(TableDataModel): simpleValue = BaseField(field_type=int, required=False) simpleValue2 = BaseField(field_type=int, required=False) fieldOne = BaseField(field_type=str, required=False) fieldTwo = BaseField(field_type=str, required=False) fieldToDelete = BaseField(field_type=int, required=False) fieldToDelete2 = BaseField(field_type=int, required=False) fieldToRemove = BaseField(field_type=int, required=False) fieldToRemove2 = BaseField(field_type=int, required=False) class ContainerToRemoveModel(MapModel): fieldOne = BaseField(field_type=str, required=False) fieldTwo = BaseField(field_type=str, required=False) fieldThree = BaseField(field_type=str, required=False) containerToRemove = BaseField(field_type=ContainerToRemoveModel, required=False) containersListToRemove = BaseField(field_type=List[ContainerToRemoveModel], key_name='listIndex')
class UsersTableModel(TableDataModel): accountId = BaseField(name="accountId", field_type=str, required=True) username = BaseField(name="username", field_type=str) class ProjectModel(MapModel): projectName = BaseField(name="projectName", field_type=str, required=True) class InstancesInfosModel(MapModel): ya = BaseField(name="ya", field_type=str) instancesInfos = MapField(name="instancesInfos", model=InstancesInfosModel) projects = BaseField(name="projects", field_type=Dict[str, ProjectModel], key_name="projectId") multiTypes = BaseField(name="multiTypes", field_type=[str, NoneType], required=True) number1 = BaseField(name="number1", field_type=[int, float], required=False) string1 = BaseField(name="string1", field_type=str, required=False) floatTest = BaseField(name="floatTest", field_type=float, required=False) fieldToRemove = BaseField(name="fieldToRemove", field_type=str, required=False) class SophisticatedRemovalModel(MapModel): nestedVariable = BaseField(name="nestedVariable", field_type=str, required=False) sophisticatedRemoval = BaseField(name="sophisticatedRemoval", field_type=Dict[str, SophisticatedRemovalModel], key_name="id", required=False) class TestMapModel(MapModel): sampleText = BaseField(name="sampleText", field_type=str, required=False) testMapModel = MapField(name="testMapModel", model=TestMapModel) testDictWithPrimitiveValue = BaseField(name="testDictWithPrimitiveValue", field_type=Dict[str, bool], key_name="key")
class BaseUserTableDataModel(TableDataModel): accountProjectTableKeyId = BaseField(field_type=str, required=True) thenState = BaseField(field_type=str, required=False) lastIntentHandler = BaseField(field_type=str, required=False)
class ContainerModel(MapModel): firstNestedValue = BaseField(field_type=str, required=False) secondNestedValue = BaseField(field_type=str, required=False) thirdNestedValue = BaseField(field_type=str, required=False)
class ItemWithMultipleAttributes(MapModel): name = BaseField(field_type=str, required=False) value = BaseField(field_type=str, required=False) timestamp = BaseField(field_type=(int, float), required=False)
class ContainerModel(MapModel): textFieldOne = BaseField(field_type=str, required=False) textFieldTwo = BaseField(field_type=str, required=False)
class DynamoDBTableModel(BaseTableModel): accountId = BaseField(field_type=str, required=True)
class ExternalDynamoDBApiTableModel(BaseTableModel): accountProjectTableKeyId = BaseField(field_type=str, required=True)
class TestMapModel(MapModel): sampleText = BaseField(name="sampleText", field_type=str, required=False)
class ItemModel(MapModel): itemName = BaseField(field_type=str, required=False)
class ContainerModel(MapModel): floatOne = BaseField(field_type=float, required=False) floatTwo = BaseField(field_type=float, required=False)
class ContainerItem(MapModel): value = BaseField(field_type=int, required=False)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) class ItemModel(MapModel): value = BaseField(field_type=str, required=True) requiredModelAcceptingNone = BaseField(field_type=ItemModel, required=False)
class ItemModel(MapModel): value = BaseField(field_type=str, required=True)
class TableModel(TableDataModel): accountId = BaseField(field_type=str, required=True) username = BaseField(field_type=str, required=False)