def test_site_validation(self): site = Site() self.assertFalse( site.is_valid(), 'Default site values should not validate due to empty name and slug' ) site.name = "Valid Site Name" site.slug = 'valid-site-name' self.assertTrue(site.is_valid(), 'These hand-coded values should be valid') # Test some known-bad slugs bad_slugs = [ 'valid site name', # no whitespace 'valid--site--name', # no repeated hyphens 'Valid-Site-Name', # No capital letters 'chris\'-awesome-site', # No apostrophes ] for bad_slug in bad_slugs: site.name = 'Valid Site Name' site.slug = bad_slug self.assertFalse( site.is_valid(), 'This slug should have been invalid: \'%(slug)\'' % site.slug)
def test_site_validation(self): site = Site() self.assertFalse(site.is_valid(), 'Default site values should not validate due to empty name and slug') site.name = "Valid Site Name" site.slug = 'valid-site-name' self.assertTrue(site.is_valid(), 'These hand-coded values should be valid') # Test some known-bad slugs bad_slugs = [ 'valid site name', # no whitespace 'valid--site--name', # no repeated hyphens 'Valid-Site-Name', # No capital letters 'chris\'-awesome-site', # No apostrophes ] for bad_slug in bad_slugs: site.name = 'Valid Site Name' site.slug = bad_slug self.assertFalse(site.is_valid(), 'This slug should have been invalid: \'%(slug)\'' % site.slug)
def test_create_new(self): # Keep track of the initial set, so that we can discern which changes were caused by this test starting_sites = Site.all() site = Site() site.name = 'Chris\' Awesome Test Site #1' site.slug = 'chris-awesome-test-site-1' site.xstreet = '1234 Fake Street' site.xcity = 'Universal City' site.xzip = '78005' # site.latitude = Decimal('175.1') # site.longitude = Decimal('176.0') site.latitude = '175.1' site.longitude = '176.0' site.opentime = '10am' site.closetime = '6pm' site.days = 'M-T' site.sitecoordinator = None # TODO: test variations of this too site.sitetype = 'Tax Preparation' site.is_open = True result = site.save() self.assertEqual(200, result, 'Failed to save the new site') # Validate that the record was indeed written out to the DB self.assertEqual( len(starting_sites) + 1, len(Site.all()), 'No Site record was actually written') # # Now fetch the site data back out site2 = Site.find('chris-awesome-test-site-1') self.assertEqual('Chris\' Awesome Test Site #1', site2.name) self.assertEqual('chris-awesome-test-site-1', site2.slug) self.assertEqual("1234 Fake Street", site2.xstreet) self.assertEqual('Universal City', site2.xcity) self.assertEqual('78005', site2.xzip) # self.assertEqual(Decimal('175.1'), site2.latitude) # self.assertEqual(Decimal('176.0'), site2.longitude) self.assertEqual('175.1', site2.latitude) self.assertEqual('176.0', site2.longitude) self.assertEqual('10am', site2.opentime) self.assertEqual('6pm', site2.closetime) self.assertEqual('M-T', site2.days) self.assertEqual(None, site2.sitecoordinator) self.assertEqual(True, site2.is_open) # Delete the newly created site self.assertEqual(200, site2.delete()) self.assertEqual( len(starting_sites), len(Site.all()), 'The site creation test failed to clean up after itself')
def test_create_new(self): # Keep track of the initial set, so that we can discern which changes were caused by this test starting_sites = Site.all() site = Site() site.name = 'Chris\' Awesome Test Site #1' site.slug = 'chris-awesome-test-site-1' site.xstreet = '1234 Fake Street' site.xcity = 'Universal City' site.xzip = '78005' # site.latitude = Decimal('175.1') # site.longitude = Decimal('176.0') site.latitude = '175.1' site.longitude = '176.0' site.opentime = '10am' site.closetime = '6pm' site.days = 'M-T' site.sitecoordinator = None # TODO: test variations of this too site.sitetype = 'Tax Preparation' site.is_open = True result = site.save() self.assertEqual(200, result, 'Failed to save the new site') # Validate that the record was indeed written out to the DB self.assertEqual(len(starting_sites)+1, len(Site.all()), 'No Site record was actually written') # # Now fetch the site data back out site2 = Site.find('chris-awesome-test-site-1') self.assertEqual('Chris\' Awesome Test Site #1', site2.name) self.assertEqual('chris-awesome-test-site-1', site2.slug) self.assertEqual("1234 Fake Street", site2.xstreet) self.assertEqual('Universal City', site2.xcity) self.assertEqual('78005', site2.xzip) # self.assertEqual(Decimal('175.1'), site2.latitude) # self.assertEqual(Decimal('176.0'), site2.longitude) self.assertEqual('175.1', site2.latitude) self.assertEqual('176.0', site2.longitude) self.assertEqual('10am', site2.opentime) self.assertEqual('6pm', site2.closetime) self.assertEqual('M-T', site2.days) self.assertEqual(None, site2.sitecoordinator) self.assertEqual(True, site2.is_open) # Delete the newly created site self.assertEqual(200, site2.delete()) self.assertEqual(len(starting_sites), len(Site.all()), 'The site creation test failed to clean up after itself')
def test_delete_site(self): # Make note of the starting site count starting_sites = Site.all() # Create a Site manually first so that we isolate this test to only the Update API raw_site = Site() raw_site.name = 'tc_lambda_sites_test_delete_site' raw_site.address = '123 tc_lambda_sites_test_delete_site street' raw_site.availability_status = 'Green' raw_site.hours = '12-12' raw_site.is_open = True raw_site.save() self.assertEqual("123 tc_lambda_sites_test_delete_site street", raw_site.address) self.assertEqual('tc_lambda_sites_test_delete_site', raw_site.name) self.assertEqual('Green', raw_site.availability_status) self.assertEqual(True, raw_site.is_open) self.assertEqual('12-12', raw_site.hours) event = { 'httpMethod': 'DELETE', 'path': '/site/tc_lambda_sites_test_delete_site', 'resource': '/site/{sitename}', 'pathParameters': { 'sitename': 'tc_lambda_sites_test_delete_site' }, 'body': None, } response = LambdaApiHandler.site_apis(event) self.assertEqual('', response['body']) self.assertEqual('200', response['statusCode']) self.assertEqual( len(starting_sites), len(Site.all()), 'The Delete Site API failed to destroy the record it created.') # Fetch the site separately and validate the content site = Site.find('tc_lambda_sites_test_delete_site') self.assertIsNone(site) # Cleanup. if raw_site != None: raw_site.delete() # Cleanup validation self.assertEqual(len(starting_sites), len(Site.all()), "Failed to clean up the site we created!")
def test_create_new(self): site = Site() site.name = 'test_site_2' site.address = '234 Fake Street' site.availability_status = 'Green' site.hours = '1-2' site.is_open = True result = site.save() self.assertTrue(result, 'Failed to save the new site') # Validate that the record was indeed written out to the DB self.assertEqual(2, len(Site.all())) # Now fetch the site data back out site2 = Site.find('test_site_2') self.assertEqual("234 Fake Street", site.address) self.assertEqual('test_site_2', site.name) self.assertEqual('Green', site.availability_status) self.assertEqual(True, site.is_open) self.assertEqual('1-2', site.hours) # Delete the newly created site site2.delete() self.assertEqual(1, len(Site.all()))
def test_update_site(self): # Make note of the starting site count starting_sites = Site.all() # Create a Site manually first so that we isolate this test to only the Update API raw_site = Site() raw_site.name = 'tc_lambda_sites_test_update_site' raw_site.address = '123 tc_lambda_sites_test_update_site street' raw_site.availability_status = 'Green' raw_site.hours = '12-12' raw_site.is_open = True raw_site.save() self.assertEqual("123 tc_lambda_sites_test_update_site street", raw_site.address) self.assertEqual('tc_lambda_sites_test_update_site', raw_site.name) self.assertEqual('Green', raw_site.availability_status) self.assertEqual(True, raw_site.is_open) self.assertEqual('12-12', raw_site.hours) event = { 'httpMethod': 'POST', 'path': '/site/tc_lambda_sites_test_update_site', 'resource': '/site/{sitename}', 'pathParameters': { 'sitename': 'tc_lambda_sites_test_update_site' }, 'body': json.dumps({ "Site": { "name": raw_site.name, "address": "123 tc_lambda_sites_test_update_site parkway", "hours": raw_site.hours, "is_open": raw_site.is_open, "availability_status": raw_site.availability_status } }), } response = LambdaApiHandler.site_apis(event) self.assertEqual('', response['body']) self.assertEqual('200', response['statusCode']) self.assertEqual( len(starting_sites) + 1, len(Site.all()), 'Somehow the Update Site API created a new entry') # Fetch the site separately and validate the content site = Site.find('tc_lambda_sites_test_update_site') self.assertIsNotNone(site) self.assertEqual('tc_lambda_sites_test_update_site', site.name) self.assertEqual("123 tc_lambda_sites_test_update_site parkway", site.address) self.assertEqual('Green', site.availability_status) self.assertEqual(True, site.is_open) self.assertEqual('12-12', site.hours) # Cleanup. if raw_site != None: raw_site.delete() # Cleanup validation self.assertEqual(len(starting_sites), len(Site.all()), "Failed to clean up the site we created!")