133 lines
No EOL
4 KiB
Python
133 lines
No EOL
4 KiB
Python
from settings import config
|
|
from paramecio.cromosoma.webmodel import WebModel
|
|
from paramecio.cromosoma import corefields
|
|
import unittest
|
|
|
|
|
|
# Create TestWebModelMethods
|
|
|
|
class ExampleModel(WebModel):
|
|
|
|
def create_fields(self):
|
|
|
|
# I can change other fields here, how the name.
|
|
|
|
self.register(corefields.CharField('title'))
|
|
self.register(corefields.CharField('content'))
|
|
|
|
model=ExampleModel()
|
|
|
|
class TestWebModelMethods(unittest.TestCase):
|
|
|
|
def test_test_table(self):
|
|
|
|
sql=model.create_table()
|
|
|
|
print('Creating table')
|
|
|
|
self.assertTrue(WebModel.query(WebModel, sql))
|
|
|
|
post={'title': 'Example title', 'content': 'New content'}
|
|
|
|
model.set_valid_fields()
|
|
|
|
print('Insert row')
|
|
|
|
self.assertTrue(model.insert(post))
|
|
|
|
print('Check new id')
|
|
|
|
self.assertEqual(model.insert_id(), 1)
|
|
|
|
post={'title': 'Example title Updated', 'content': 'New content Updated'}
|
|
|
|
model.conditions=['WHERE id=%s', [1]]
|
|
|
|
print('Update row')
|
|
|
|
self.assertTrue(model.update(post))
|
|
|
|
model.yes_reset_conditions=False
|
|
|
|
model.conditions=['WHERE id=%s', [1]]
|
|
|
|
print('Count rows')
|
|
|
|
self.assertEqual(model.select_count(), 1)
|
|
|
|
print('Select a row')
|
|
|
|
self.assertEqual(model.select_a_row(1, ['title']), {'title': 'Example title Updated'})
|
|
|
|
print('Select a row with different conditions to search id')
|
|
|
|
self.assertEqual(model.select_a_row_where(['title']), {'title': 'Example title Updated'})
|
|
|
|
print('Select and save in an array')
|
|
|
|
self.assertEqual(model.select_to_array(['title', 'content']), {1: {'title': 'Example title Updated', 'content': 'New content Updated'}})
|
|
|
|
model.yes_reset_conditions=True
|
|
|
|
model.reset_conditions()
|
|
|
|
print('Reset conditions')
|
|
|
|
self.assertEqual(model.conditions, ['WHERE 1=1', []])
|
|
|
|
print('Simple base select')
|
|
|
|
cur=model.select()
|
|
|
|
row=model.fetch(cur)
|
|
|
|
self.assertEqual(row, {'id': 1, 'title': 'Example title Updated', 'content': 'New content Updated'})
|
|
|
|
print('Check element exists')
|
|
|
|
self.assertTrue(model.element_exists(1))
|
|
|
|
model.conditions=['WHERE id=%s', [2]]
|
|
|
|
print('Check delete row')
|
|
|
|
self.assertFalse(model.delete())
|
|
|
|
self.assertTrue(model.delete())
|
|
|
|
print('Check delete table')
|
|
|
|
self.assertTrue(model.drop())
|
|
|
|
def test_update_table(self):
|
|
|
|
print('Check modifications in table')
|
|
|
|
sql=model.create_table()
|
|
|
|
self.assertTrue(WebModel.query(WebModel, sql))
|
|
|
|
fields_to_modify=[]
|
|
fields_to_add_index=[]
|
|
fields_to_add_constraint=[]
|
|
fields_to_add_unique=[]
|
|
fields_to_delete_index=[]
|
|
fields_to_delete_unique=[]
|
|
fields_to_delete_constraint=[]
|
|
fields_to_delete=[]
|
|
|
|
model.register(corefields.CharField('description'))
|
|
|
|
model.update_table(['description'], fields_to_modify, fields_to_add_index, fields_to_add_constraint, fields_to_add_unique, fields_to_delete_index, fields_to_delete_unique, fields_to_delete_constraint, fields_to_delete)
|
|
|
|
model.register(corefields.IntegerField('description'))
|
|
|
|
model.update_table([], ['description'], ['description'], [], ['description'], fields_to_delete_index, fields_to_delete_unique, fields_to_delete_constraint, fields_to_delete)
|
|
|
|
model.update_table([], fields_to_modify, fields_to_add_index, fields_to_add_constraint, fields_to_add_unique, ['description'], ['description'], fields_to_delete_constraint, ['description'])
|
|
|
|
self.assertTrue(model.drop())
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|
|
|