Beispiel #1
0
def create_dynamic_schema(objects_json, urls_json):
    schema = Schema("./tests/files/empty_schema.json")
    schema.create_objects(objects_json)
    schema.create_apis(urls_json)
    schema.validate_apis_and_objects()
    schema.add_relationship_objects()
    return schema
Beispiel #2
0
def create_dynamic_schema(objects_json, urls_json):
    schema = Schema("./tests/files/empty_schema.json")
    schema.create_objects(objects_json)
    schema.create_apis(urls_json)
    schema.validate_apis_and_objects()
    schema.add_relationship_objects()
    return schema
Beispiel #3
0
 def test_create_objects(self):
     schema = Schema("./tests/files/empty_schema.json")
     self.assertEqual(schema.data_objects, {})
     schema.create_objects({
         "$resetPasswordRequest": {
             "email": "string"
         },
         "$resetPasswordResponse": {
             "status": "string"
         }
     })
     self.assertEqual(len(schema.data_objects), 2)
     self.assertEqual(schema.data_objects['$resetPasswordRequest'].name, '$resetPasswordRequest')
Beispiel #4
0
 def test_create_schema(self):
     # Test that generally the schema object was created.
     # Will test individual pieces in unit tests.
     schema = Schema("./tests/files/test_schema.json")
     self.assertEqual(len(schema.data_objects), 3)
     self.assertEqual(len(schema.urls), 2)
     self.assertEqual(schema.schema_path, "./tests/files/test_schema.json")
Beispiel #5
0
 def test_process_error(self, mock_subprocess):
     mock_subprocess.check_output.return_value = "Xcode.app"
     generator = ObjectiveCGenerator(
         "objc", Schema("./tests/files/test_schema.json"), "./tests/files/",
         "./core/data/path", True, "YetiProject")
     with self.assertRaises(SignalsError) as e:
         generator.process()
     self.assertEqual(e.exception.msg,
                      "Must quit Xcode before writing to core data")
Beispiel #6
0
 def test_data_model_header_template(self):
     schema = Schema("./tests/files/test_schema.json")
     self.assertTemplateEqual('data_model.h.j2', 'DataModel.h', {
         'schema': schema,
         'VIDEO_FIELD': Field.VIDEO,
         'IMAGE_FIELD': Field.IMAGE,
         'today': datetime.today(),
         'endpoints': URL.URL_ENDPOINTS.keys(),
     }, expected_context=(
         datetime.today().strftime('%m/%d/%Y'),
     ))
Beispiel #7
0
 def test_create_apis(self):
     schema = Schema("./tests/files/empty_schema.json")
     self.assertEqual(schema.urls, [])
     schema.create_apis([
         {
             "url": "posts/",
             "get": {
                 "#meta": "oauth2,optional",
                 "response": {
                     "200+": "$postResponse"
                 }
             }
         },
         {
             "url": "follows/:id/",
             "delete": {
                 "#meta": "oauth2"
             }
         }
     ])
     self.assertEqual(len(schema.urls), 2)
     self.assertEqual(schema.urls[0].url_path, "posts/")
Beispiel #8
0
 def test_data_model_implementation_template(self):
     schema = Schema("./tests/files/test_schema.json")
     self.assertTemplateEqual('data_model.m.j2', 'DataModel.m', {
         'project_name': "TestProject",
         'schema': schema,
         'VIDEO_FIELD': Field.VIDEO,
         'IMAGE_FIELD': Field.IMAGE,
         'today': datetime.today(),
         'endpoints': URL.URL_ENDPOINTS.keys(),
         'request_objects': ObjectiveCTemplate.get_request_objects(schema.data_objects),
         'sanitize_field_name': sanitize_field_name
     }, expected_context=(
         datetime.today().strftime('%m/%d/%Y'),
     ))
Beispiel #9
0
def run_signals(schema, generator_name, data_models, core_data, check_xcode,
                project_name, save):

    schema = Schema(schema)

    generator = generators[generator_name](generator_name, schema, data_models,
                                           core_data, check_xcode,
                                           project_name)
    try:
        generator.process()
        if save:
            save_settings([data_models, core_data], schema, generator_name,
                          data_models, core_data, project_name)
    except SignalsError as e:
        print(str(e))
    else:
        progress('Finished generating your files!')
    finally:
        generator.clear_generated_code_files()
Beispiel #10
0
 def test_check_setup_called_failure(self, mock_function):
     generator = ObjectiveCGenerator(
         "objc", Schema("./tests/files/test_schema.json"), "./tests/files/",
         "./core/data/path", False, "YetiProject")
     self.assertFalse(generator.check_setup_called())