def test_write_assert_list(self): data = [{ 'name': 'kilo', 'password': 9999, 'groups': ['admin', 'users'], 'config': { 'server': 'all', 'bulding': 116 } }, { 'name': 'pasto', 'password': '******', 'groups': ['users'], 'config': { 'server': 'database', 'bulding': 116 }, 'created': '2016-10-01', 'modified': '2016-10-01' }] filename = write_assert_list(self.test_write_assert_list.filename, data, 'data') self.assertEqual(filename, self.test_write_assert_list.filename) hash_digest = hash_file(filename) self.assertEqual('5cd2e29830c5c0a9af1e60a8f08b3ffc49cf92fb', hash_digest)
def test_print_paths(self): filename = self.test_print_paths.filename generator = UrlGenerator('Server') generator.print_paths(filename) self.assertTrue(os.path.exists(filename)) hash = hash_file(filename) self.assertEqual(hash, 'de4251b6c78a5911b6c3440c580de05d4d417c59')
def test_print(self): filename = self.test_print.filename generator = SerializerTestGenerator() data = dict() try: my_module = importlib.import_module("servers.api.serializers") except: my_module = importlib.import_module( "example.servers.api.serializers") ServerSerializer = getattr(my_module, "ServerSerializer") serializer = ServerSerializer() rep_ser = repr(serializer) fields = list() str_fields = list() for field in serializer.fields: fields.append(field) for key, field in serializer.fields.fields.items(): if type(field).__name__ in ['CharField', 'TextField']: str_fields.append(field.field_name) print(key) data['model_name'] = serializer.Meta.model.__name__ data['fields'] = fields data['string_vars'] = str_fields generator.print(data, filename) hash = hash_file(filename) self.assertEqual(hash, '7ef21355fba29674cadb111e6217b1ed100d5e5a')
def test_print_urls(self): filename = self.test_print_urls.filename generator = UrlGenerator('Server') generator.print_urls(filename) self.assertTrue(os.path.exists(filename)) hash = hash_file(filename) self.assertEqual(hash, '14ef340ea846e3d37fd71d80362a5225e05133a3')
def test_temporary_folder_write_list(self): with TemporaryFolder('my_temp_list', delete_on_exit=True) as folder: self.assertTrue(os.path.exists(folder.new_path)) filename = folder.write('m.txt', ['kilo', 'boma']) digest = hash_file(filename) self.assertEqual('5585c5895705bb5fe8906a2fd93453af5ee643b5', digest) self.assertFalse(os.path.exists(folder.new_path))
def test_temporary_folder_write_str(self): with TemporaryFolder('my_temp_str') as folder: self.assertTrue(os.path.exists(folder.new_path)) filename = folder.write('m.txt', 'Hola') digest = hash_file(filename) self.assertEqual('4e46dc0969e6621f2d61d2228e3cd91b75cd9edc', digest) self.assertFalse(os.path.exists(folder.new_path))
def test_temporary_folder_write_other(self): with TemporaryFolder('my_temp_date') as folder: self.assertTrue(os.path.exists(folder.new_path)) filename = folder.write('m.txt', datetime.date(2016, 12, 3)) digest = hash_file(filename) self.assertEqual('2b7db434f52eb470e1a6dcdc39063536c075a4f0', digest) self.assertFalse(os.path.exists(folder.new_path))
def test_write_servers(self): generator = FactoryBoyGenerator() factory_data = generator.create_template_data( settings.TEST_APP_SERVERS) template_name = 'factories.py.j2' writer = GenericTemplateWriter(template_name) writer.write(factory_data, self.test_write_servers.filename) hash = hash_file(self.test_write_servers.filename) self.assertEqual(hash, '5cf89c49762055625bc22ef2a09be220768edb6d')
def test_write_people(self): generator = FactoryBoyGenerator() factory_template_data = generator.create_template_data( settings.TEST_APP_PEOPLE) template_name = 'factories.py.j2' writer = GenericTemplateWriter(template_name) writer.write(factory_template_data, self.test_write_people.filename) hash = hash_file(self.test_write_people.filename) self.assertEqual(hash, '799fd2de59c6ee8e973855b44985bbd12b16fbdd')
def test_convert_to_dict(self): import environ full_path = (environ.Path(__file__) - 1).path( 'fixtures', 'excel_to_json.xlsx').root dict_data = ExcelAdapter.convert_to_dict(full_path) output = self.test_convert_to_dict.filename with open(output, 'w') as json_file: json.dump(dict_data, json_file) hash = hash_file(output) self.assertEqual(hash, '6ae7bfd81e52ace91f619e4b5586eb687888f43b')
def test_write_summary(self): parser = Flake8Parser() filename = self.test_write_summary.filename with open(filename, 'w', encoding='utf-8') as pep8_file: pep8_file.write(self.content) out_filename = create_dated('pep8_violations.csv') parser.write_summary(filename, out_filename) digest = hash_file(out_filename) self.assertEqual('20f5184854bd10ed0998c8e9029175ed08b097e0', digest) self.clean_output_folder(out_filename)
def test_print_snake_case(self): filename = self.test_print_snake_case.filename generator = SerializerTestGenerator() data = dict() fields = ['name', 'power'] str_fields = ['name'] data['model_name'] = 'ComplicatedObject' data['fields'] = fields data['string_vars'] = str_fields generator.print(data, filename) hash = hash_file(filename) self.assertEqual(hash, 'b635eaef01ce567e83fd5700a5888e783caf3c6e')
def test_write_assertions(self): data = [{ 'name': 'kilo', 'password': 9999, 'groups': ['admin', 'users'], 'config': { 'server': 'all', 'bulding': 116 } }, { 'name': 'pasto', 'password': '******', 'groups': ['users'], 'config': { 'server': 'database', 'bulding': 116 }, 'created': '2016-10-01', 'modified': '2016-10-01' }] filename = write_assertions( data, 'data', filename=self.test_write_assertions.filename, excluded_keys=['config']) self.assertEqual(filename, self.test_write_assertions.filename) hash_digest = hash_file(filename) self.assertEqual(hash_digest, 'bd059f11bb7a5a2db70c89d94c9cd681f4684fa4') content = self.get_txt_content(filename) self.assertEqual(len(content), 10) self.assertEqual(content[0], 'self.assertEqual(len(data), 2)') self.assertEqual(content[1], 'self.assertEqual(len(data[0][\'groups\']), 2)') self.assertEqual( content[2], 'self.assertEqual(data[0][\'groups\'][0], \'admin\')') self.assertEqual( content[3], 'self.assertEqual(data[0][\'groups\'][1], \'users\')') self.assertEqual(content[4], 'self.assertEqual(data[0][\'name\'], \'kilo\')') self.assertEqual(content[5], 'self.assertEqual(data[0][\'password\'], 9999)') self.assertEqual(content[6], 'self.assertEqual(len(data[1][\'groups\']), 1)') self.assertEqual( content[7], 'self.assertEqual(data[1][\'groups\'][0], \'users\')') self.assertEqual(content[8], 'self.assertEqual(data[1][\'name\'], \'pasto\')') self.assertEqual(content[9], 'self.assertEqual(data[1][\'password\'], \'nogo\')')
def test_upload(self): source_filename = '../../requirements/base.txt' source_hash = hash_file(source_filename) bucket = settings.AWS_STORAGE_BUCKET_NAME object_name = 'base_req.txt' output_filename = self.test_upload.filename self.s3_client.upload_file(source_filename, bucket, object_name) self.s3_client.download_file(bucket, object_name, output_filename) output_hash = hash_file(output_filename) res = self.s3_client.get_object_acl(Bucket=bucket, Key=object_name) print(res) self.s3_client.delete_object(Bucket=bucket, Key=object_name) self.assertEqual(output_hash, source_hash) self.assertTrue(os.path.exists(output_filename)) try: self.s3_client.get_object_acl(Bucket=bucket, Key=object_name) self.fail('Should have raised a NoSuchKey exception') except Exception: pass print(res)
def test_excel_to_json(self): import environ output = self.test_excel_to_json.filename excel_file = (environ.Path(__file__) - 1).path( 'fixtures', 'excel_to_json.xlsx').root call_command('convert_to_json', input=excel_file, output=output, stdout=self.content) hash = hash_file(output) app_name = settings.TEST_APP_SERVERS if app_name == 'example.servers': self.assertEqual(hash, '535ffac988e95a1536fe6803ea7d78c99b1c28df') else: self.assertEqual(hash, '535ffac988e95a1536fe6803ea7d78c99b1c28df')
def test_generate_factories(self): call_command('generate_factories', settings.TEST_APP_SERVERS, stdout=self.content) results = self.get_results() self.assertEqual(44, len(results)) filename = create_output_filename_with_date( 'example_my_app_factory.py') with open(filename, 'w', encoding='utf-8') as factory_file: for line in results: factory_file.write(line) factory_file.write('\n') hash_sha = hash_file(filename, algorithm='sha256') self.assertEqual( 'c8c331856529fe10afe8460de8dbd04b5f208d2a4922c275c1f6309bf7a3ed95', hash_sha) self.clean_output_folder(filename)
def write_generator_to_file(self, filename, generator): with open(filename, 'w', encoding='utf-8') as py_file: py_file.write(str(generator)) hash = hash_file(filename) return hash
def test_write_assertions_type_only(self): data = [{ 'name': 'kilo', 'password': 9999, 'groups': ['admin', 'users'], 'config': { 'server': 'all', 'bulding': 116 } }, { 'name': 'pasto', 'password': '******', 'groups': ['users'], 'config': { 'server': 'database', 'bulding': None }, 'created_date': date(2016, 1, 3), 'modified': '2016-10-01' }] filename = write_assertions( data, 'data', filename=self.test_write_assertions_type_only.filename, type_only=True) self.assertEqual(filename, self.test_write_assertions_type_only.filename) hash_digest = hash_file(filename) self.assertEqual(hash_digest, 'ca1619b2945c6a5934e4778c6157fa8392656f44') content = self.get_txt_content(filename) self.assertEqual(len(content), 19) self.assertEqual(content[0], 'self.assertEqual(len(data), 2)') self.assertEqual(content[1], 'self.assertEqual(len(data[0].keys()), 4)') self.assertEqual( content[2], 'self.assertEqual(len(data[0][\'config\'].keys()), 2)') self.assertEqual( content[3], 'self.assertIsNotNone(data[0][\'config\'][\'bulding\']) # Example: 116' ) self.assertEqual( content[4], 'self.assertIsNotNone(data[0][\'config\'][\'server\']) # Example: all' ) self.assertEqual(content[5], 'self.assertEqual(len(data[0][\'groups\']), 2)') self.assertEqual( content[6], 'self.assertIsNotNone(data[0][\'groups\'][0]) # Example: admin') self.assertEqual( content[7], 'self.assertIsNotNone(data[0][\'groups\'][1]) # Example: users') self.assertEqual( content[8], 'self.assertIsNotNone(data[0][\'name\']) # Example: kilo') self.assertEqual( content[9], 'self.assertIsNotNone(data[0][\'password\']) # Example: 9999') self.assertEqual(content[10], 'self.assertEqual(len(data[1].keys()), 6)') self.assertEqual( content[11], 'self.assertEqual(len(data[1][\'config\'].keys()), 2)') self.assertEqual( content[12], 'self.assertIsNone(data[1][\'config\'][\'bulding\']) # Example: None' ) self.assertEqual( content[13], 'self.assertIsNotNone(data[1][\'config\'][\'server\']) # Example: database' ) self.assertEqual( content[14], 'self.assertRegex(data[1][\'created_date\'].strftime(\'%Y-%m-%d\'), r\'([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))\') # Example: 2016-01-03' ) self.assertEqual(content[15], 'self.assertEqual(len(data[1][\'groups\']), 1)') self.assertEqual( content[16], 'self.assertIsNotNone(data[1][\'groups\'][0]) # Example: users') self.assertEqual( content[17], 'self.assertIsNotNone(data[1][\'name\']) # Example: pasto') self.assertEqual( content[18], 'self.assertIsNotNone(data[1][\'password\']) # Example: nogo')
def test_write_assert_regexp(self): data = [{ 'name': 'kilo', 'password': 9999, 'groups': ['ADMIN', 'USERS'], 'config': { 'server': 'all', 'bulding': 116 } }, { 'name': 'pasto', 'password': '******', 'groups': ['users'], 'config': { 'server': 'database', 'bulding': 116 }, 'time': '11:45', 'cost': '1234.45', 'created': '2016-10-01', 'modified': '2016-10-01' }] filename = self.test_write_assert_regexp.filename assertion_writer = AssertionWriter(use_regexp_assertion=True) assertion_writer.add_regular_expression('constant', '^[A-Z]+$') assertion_writer.write_assert_list(data, 'data', filename=filename) hash_digest = hash_file(filename) content = self.get_txt_content(filename) self.assertEqual(len(content), 16) self.assertEqual(content[0], 'self.assertEqual(len(data), 2)') self.assertEqual( content[1], 'self.assertEqual(data[0][\'config\'][\'bulding\'], 116)') self.assertEqual( content[2], 'self.assertEqual(data[0][\'config\'][\'server\'], \'all\')') self.assertEqual(content[3], 'self.assertEqual(len(data[0][\'groups\']), 2)') self.assertEqual( content[4], 'self.assertRegex(data[0][\'groups\'][0], r\'^[A-Z]+$\')') self.assertEqual( content[5], 'self.assertRegex(data[0][\'groups\'][1], r\'^[A-Z]+$\')') self.assertEqual(content[6], 'self.assertEqual(data[0][\'name\'], \'kilo\')') self.assertEqual(content[7], 'self.assertEqual(data[0][\'password\'], 9999)') self.assertEqual( content[8], 'self.assertEqual(data[1][\'config\'][\'bulding\'], 116)') self.assertEqual( content[9], 'self.assertEqual(data[1][\'config\'][\'server\'], \'database\')') self.assertEqual( content[10], 'self.assertRegex(data[1][\'cost\'], r\'^(\d+\.\d+)$\')') self.assertEqual(content[11], 'self.assertEqual(len(data[1][\'groups\']), 1)') self.assertEqual( content[12], 'self.assertEqual(data[1][\'groups\'][0], \'users\')') self.assertEqual(content[13], 'self.assertEqual(data[1][\'name\'], \'pasto\')') self.assertEqual(content[14], 'self.assertEqual(data[1][\'password\'], \'nogo\')') self.assertEqual( content[15], 'self.assertRegex(data[1][\'time\'], r\'^([0-1][0-9]|2[0-4]):([0-5][0-9])$\')' )
def test_write_totals(self): parser = RadonParser() parser.write_totals(self.filename, self.test_write_totals.filename) digest = hash_file(self.test_write_totals.filename) self.assertEqual('cc1ff3f88b894cf807e8fc755dfb26c3806bb41c', digest) self.clean_output_folder(self.filename)