本文整理汇总了Python中website.project.model.ensure_schemas函数的典型用法代码示例。如果您正苦于以下问题:Python ensure_schemas函数的具体用法?Python ensure_schemas怎么用?Python ensure_schemas使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ensure_schemas函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: draft_reg_util
def draft_reg_util():
DraftRegistration.remove()
ensure_schemas()
return MetaSchema.find_one(
Q('name', 'eq', 'Prereg Challenge') &
Q('schema_version', 'eq', 2)
)
开发者ID:545zhou,项目名称:osf.io,代码行数:7,代码来源:utils.py
示例2: setUp
def setUp(self):
super(TestDraftPreregChallengeRegistrationMetadataValidation, self).setUp()
ensure_schemas()
self.prereg_schema = MetaSchema.find_one(
Q('name', 'eq', 'Prereg Challenge') &
Q('schema_version', 'eq', LATEST_SCHEMA_VERSION)
)
self.prereg_draft_registration = DraftRegistrationFactory(
initiator=self.user,
registration_schema=self.prereg_schema,
branched_from=self.public_project
)
self.other_project = ProjectFactory(creator=self.user)
self.url = '/{}nodes/{}/draft_registrations/{}/'.format(API_BASE, self.public_project._id, self.prereg_draft_registration._id)
self.payload = {
"data": {
"id": self.prereg_draft_registration._id,
"type": "draft_registrations",
"attributes": {
"registration_metadata": {}
}
}
}
开发者ID:alexschiller,项目名称:osf.io,代码行数:27,代码来源:test_node_draft_registration_detail.py
示例3: test_archive_success_different_name_same_sha
def test_archive_success_different_name_same_sha(self):
ensure_schemas()
file_tree = file_tree_factory(0, 0, 0)
fake_file = file_factory()
fake_file2 = file_factory(sha256=fake_file['extra']['hashes']['sha256'])
file_tree['children'] = [fake_file, fake_file2]
node = factories.NodeFactory(creator=self.user)
prereg_schema = MetaSchema.find_one(
Q('name', 'eq', 'Prereg Challenge') &
Q('schema_version', 'eq', 2)
)
data = {
('q_' + fake_file['name']): {
'value': fake.word(),
'extra': {
'sha256': fake_file['extra']['hashes']['sha256'],
'viewUrl': '/project/{0}/files/osfstorage{1}'.format(
node._id,
fake_file['path']
),
'selectedFileName': fake_file['name'],
'nodeId': node._id
}
}
}
with test_utils.mock_archive(node, schema=prereg_schema, data=data, autocomplete=True, autoapprove=True) as registration:
with mock.patch.object(StorageAddonBase, '_get_file_tree', mock.Mock(return_value=file_tree)):
job = factories.ArchiveJobFactory()
archive_success(registration._id, job._id)
for key, question in registration.registered_meta[prereg_schema._id].items():
assert_equal(question['extra']['selectedFileName'], fake_file['name'])
开发者ID:mauromsl,项目名称:osf.io,代码行数:33,代码来源:test_archiver.py
示例4: setUp
def setUp(self):
super(PreregViewsTests, self).setUp()
ensure_schemas()
self.osf_user = factories.AuthUserFactory()
password = fake.password(),
self.user = User.objects.create(
email=fake.email(),
first_name=fake.first_name(),
last_name=fake.last_name(),
osf_id=self.osf_user._id
)
self.user.set_password(password)
self.user.save()
self.logged_in = self.client.login(username=self.user.email, password=password)
PREREG_GROUP.user_set.add(self.user)
PREREG_GROUP.save()
self.prereg_schema = MetaSchema.find_one(
Q('name', 'eq', 'Prereg Challenge') &
Q('schema_version', 'eq', 2)
)
self.other_schema = MetaSchema.find(
Q('name', 'ne', 'Prereg Challenge') &
Q('schema_version', 'eq', 2)
)[0]
开发者ID:AllisonLBowers,项目名称:osf.io,代码行数:27,代码来源:test_views.py
示例5: setUp
def setUp(self):
super(TestPreregFiles, self).setUp()
self.prereg_user = AuthUserFactory()
self.user = AuthUserFactory()
self.node = ProjectFactory(creator=self.user)
ensure_schemas()
prereg_schema = get_prereg_schema()
self.d_of_qs = {
'q7': OsfStorageFileNode(node=self.node, name='7'),
'q11': OsfStorageFileNode(node=self.node, name='11'),
'q16': OsfStorageFileNode(node=self.node, name='16'),
'q12': OsfStorageFileNode(node=self.node, name='12'),
'q13': OsfStorageFileNode(node=self.node, name='13'),
'q19': OsfStorageFileNode(node=self.node, name='19'),
'q26': OsfStorageFileNode(node=self.node, name='26')
}
data = {}
for q, f in self.d_of_qs.iteritems():
guid = f.get_guid(create=True)._id
f.save()
if q == 'q26':
data[q] = {
'comments': [],
'value': '26',
'extra': [
{
'data': {
'provider': 'osfstorage',
'path': f.path,
},
'fileId': guid,
'nodeId': self.node._id,
}
]
}
continue
data[q] = {
'value': {
'uploader': {
'extra': [
{
'data': {
'provider': 'osfstorage',
'path': f.path,
},
'fileId': guid,
'nodeId': self.node._id,
}
]
}
}
}
self.draft = DraftRegistrationFactory(
initiator=self.user,
registration_schema=prereg_schema,
registration_metadata=data
)
self.prereg_user.save()
self.admin_user = UserFactory(osf_id=self.prereg_user.pk)
开发者ID:alexschiller,项目名称:osf.io,代码行数:60,代码来源:test_views.py
示例6: setUp
def setUp(self):
super(RegistrationEmbargoViewsTestCase, self).setUp()
ensure_schemas()
self.user = AuthUserFactory()
self.project = ProjectFactory(creator=self.user)
self.draft = DraftRegistrationFactory(branched_from=self.project)
self.registration = RegistrationFactory(project=self.project, creator=self.user)
current_month = datetime.datetime.now().strftime("%B")
current_year = datetime.datetime.now().strftime("%Y")
self.valid_make_public_payload = json.dumps({
u'embargoEndDate': u'Fri, 01, {month} {year} 00:00:00 GMT'.format(
month=current_month,
year=current_year
),
u'registrationChoice': 'immediate',
u'summary': unicode(fake.sentence())
})
valid_date = datetime.datetime.now() + datetime.timedelta(days=180)
self.valid_embargo_payload = json.dumps({
u'embargoEndDate': unicode(valid_date.strftime('%a, %d, %B %Y %H:%M:%S')) + u' GMT',
u'registrationChoice': 'embargo',
u'summary': unicode(fake.sentence())
})
self.invalid_embargo_date_payload = json.dumps({
u'embargoEndDate': u"Thu, 01 {month} {year} 05:00:00 GMT".format(
month=current_month,
year=str(int(current_year)-1)
),
u'registrationChoice': 'embargo',
u'summary': unicode(fake.sentence())
})
开发者ID:mchelen,项目名称:osf.io,代码行数:33,代码来源:test_embargoes.py
示例7: setUp
def setUp(self):
super(TestRegistrationCreate, self).setUp()
ensure_schemas()
self.schema = MetaSchema.find_one(
Q('name', 'eq', 'Replication Recipe (Brandt et al., 2013): Post-Completion') &
Q('schema_version', 'eq', LATEST_SCHEMA_VERSION)
)
self.draft_registration = DraftRegistrationFactory(
initiator=self.user,
registration_schema=self.schema,
branched_from=self.public_project,
registration_metadata = {
'item29': {'value': 'Yes'},
'item33': {'value': 'success'}
}
)
self.url = '/{}nodes/{}/registrations/'.format(API_BASE, self.public_project._id)
self.payload = {
"data": {
"type": "registrations",
"attributes": {
"draft_registration": self.draft_registration._id,
"registration_choice": "immediate"
}
}
}
开发者ID:alexschiller,项目名称:osf.io,代码行数:30,代码来源:test_registration_list.py
示例8: test_auth_login_with_campaign_logged_in
def test_auth_login_with_campaign_logged_in(self):
ensure_schemas()
url = web_url_for('auth_login', campaign='prereg')
user = factories.AuthUserFactory()
with self.app.app.test_request_context(url), mock_auth(user):
res = auth_views.auth_login()
assert_equal(res.status_code, http.FOUND)
assert_equal(res.location, campaigns.CAMPAIGNS['prereg']['redirect_url']())
开发者ID:545zhou,项目名称:osf.io,代码行数:8,代码来源:test_campaigns.py
示例9: init_app
def init_app(settings_module='website.settings', set_backends=True, routes=True,
attach_request_handlers=True):
"""Initializes the OSF. A sort of pseudo-app factory that allows you to
bind settings, set up routing, and set storage backends, but only acts on
a single app instance (rather than creating multiple instances).
:param settings_module: A string, the settings module to use.
:param set_backends: Whether to set the database storage backends.
:param routes: Whether to set the url map.
"""
logger.info('Initializing the application from process {}, thread {}.'.format(
os.getpid(), thread.get_ident()
))
# The settings module
settings = importlib.import_module(settings_module)
init_addons(settings, routes)
with open(os.path.join(settings.STATIC_FOLDER, 'built', 'nodeCategories.json'), 'wb') as fp:
json.dump(settings.NODE_CATEGORY_MAP, fp)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api.base.settings')
django.setup()
app.debug = settings.DEBUG_MODE
# default config for flask app, however, this does not affect setting cookie using set_cookie()
app.config['SESSION_COOKIE_SECURE'] = settings.SESSION_COOKIE_SECURE
app.config['SESSION_COOKIE_HTTPONLY'] = settings.SESSION_COOKIE_HTTPONLY
if set_backends:
do_set_backends(settings)
if routes:
try:
make_url_map(app)
except AssertionError: # Route map has already been created
pass
if attach_request_handlers:
attach_handlers(app, settings)
if app.debug:
logger.info("Sentry disabled; Flask's debug mode enabled")
else:
sentry.init_app(app)
logger.info("Sentry enabled; Flask's debug mode disabled")
if set_backends:
ensure_schemas()
ensure_licenses()
apply_middlewares(app, settings)
return app
开发者ID:baylee-d,项目名称:osf.io,代码行数:54,代码来源:app.py
示例10: setUp
def setUp(self):
super(TestDraftRegistrationList, self).setUp()
ensure_schemas()
self.schema = MetaSchema.find_one(
Q("name", "eq", "Open-Ended Registration") & Q("schema_version", "eq", LATEST_SCHEMA_VERSION)
)
self.draft_registration = DraftRegistrationFactory(
initiator=self.user, registration_schema=self.schema, branched_from=self.public_project
)
self.url = "/{}nodes/{}/draft_registrations/".format(API_BASE, self.public_project._id)
开发者ID:ccfair,项目名称:osf.io,代码行数:12,代码来源:test_node_draft_registration_list.py
示例11: setUp
def setUp(self):
super(TestRegistrations, self).setUp()
ensure_schemas()
self.user = AuthUserFactory()
self.auth = self.user.auth
self.original = ProjectFactory(creator=self.user, is_public=True)
# A registration
self.project = RegistrationFactory(
creator=self.user,
project=self.original,
user=self.user,
)
开发者ID:billyhunt,项目名称:osf.io,代码行数:12,代码来源:webtest_tests.py
示例12: main
def main(dev=False, _db=None):
_db = _db or db
init_app(routes=False)
count = 0
skipped = 0
scripts_utils.add_file_logger(logger, __file__)
logger.info("Iterating over all registrations")
# convert registered_schema to list field
prepare_nodes()
ensure_schemas()
node_documents = _db['node'].find({'is_registration': True})
for node in node_documents:
registered_schemas = []
registered_meta = {}
schemas = node['registered_meta']
if not schemas:
logger.info('Node: {0} is registered but has no registered_meta'.format(node['_id']))
continue
for schema_id, schema in schemas.iteritems():
name = _id_to_name(from_mongo(schema_id))
schema = from_json_or_fail(schema)
# append matching schema to node.registered_schema
try:
meta_schema = MetaSchema.find(
Q('name', 'eq', name)
).sort('-schema_version')[0]
except IndexError as e:
logger.error('No MetaSchema matching name: {0} found for node: {1}.'.format(name, node['_id']))
# Skip over missing schemas
skipped += 1
if dev:
continue
else:
raise e
else:
registered_meta[meta_schema._id] = {
key: {
'value': value
}
for key, value in schema.items()
}
registered_schemas.append(meta_schema._id)
db['node'].update(
{'_id': node['_id']},
{'$set': {
'registered_meta': registered_meta,
'registered_schema': registered_schemas
}}
)
count = count + 1
logger.info('Done with {0} nodes migrated and {1} nodes skipped.'.format(count, skipped))
开发者ID:545zhou,项目名称:osf.io,代码行数:53,代码来源:migrate_registered_meta.py
示例13: test_ensure_schemas
def test_ensure_schemas(self):
# Should be zero MetaSchema records to begin with
assert_equal(
MetaSchema.find().count(),
0
)
ensure_schemas()
assert_equal(
MetaSchema.find().count(),
len(OSF_META_SCHEMAS)
)
开发者ID:545zhou,项目名称:osf.io,代码行数:13,代码来源:test_metadata.py
示例14: setUp
def setUp(self):
super(RegistrationsTestBase, self).setUp()
self.user = AuthUserFactory()
self.auth = Auth(self.user)
self.node = ProjectFactory(creator=self.user)
self.non_admin = AuthUserFactory()
self.node.add_contributor(
self.non_admin,
permissions.DEFAULT_CONTRIBUTOR_PERMISSIONS,
auth=self.auth,
save=True
)
self.non_contrib = AuthUserFactory()
MetaSchema.remove()
ensure_schemas()
self.meta_schema = MetaSchema.find_one(
Q('name', 'eq', 'Open-Ended Registration') &
Q('schema_version', 'eq', 2)
)
self.draft = DraftRegistrationFactory(
initiator=self.user,
branched_from=self.node,
registration_schema=self.meta_schema,
registration_metadata={
'summary': {'value': 'Some airy'}
}
)
current_month = dt.datetime.now().strftime("%B")
current_year = dt.datetime.now().strftime("%Y")
valid_date = dt.datetime.now() + dt.timedelta(days=180)
self.embargo_payload = {
u'embargoEndDate': unicode(valid_date.strftime('%a, %d, %B %Y %H:%M:%S')) + u' GMT',
u'registrationChoice': 'embargo'
}
self.invalid_embargo_date_payload = {
u'embargoEndDate': u"Thu, 01 {month} {year} 05:00:00 GMT".format(
month=current_month,
year=str(int(current_year) - 1)
),
u'registrationChoice': 'embargo'
}
self.immediate_payload = {
'registrationChoice': 'immediate'
}
self.invalid_payload = {
'registrationChoice': 'foobar'
}
开发者ID:545zhou,项目名称:osf.io,代码行数:51,代码来源:base.py
示例15: setUpPrereg
def setUpPrereg(self):
ensure_schemas()
self.prereg_challenge_admin_user = AuthUserFactory()
self.prereg_challenge_admin_user.system_tags.append(settings.PREREG_ADMIN_TAG)
self.prereg_challenge_admin_user.save()
prereg_schema = MetaSchema.find_one(
Q('name', 'eq', 'Prereg Challenge') &
Q('schema_version', 'eq', 2)
)
# import ipdb; ipdb.set_trace()
self.draft_registration = factories.DraftRegistrationFactory(
initiator=self.user,
registration_schema=prereg_schema
)
开发者ID:mattspitzer,项目名称:osf.io,代码行数:14,代码来源:test_addons.py
示例16: init_app
def init_app(settings_module='website.settings', set_backends=True, routes=True, mfr=False,
attach_request_handlers=True):
"""Initializes the OSF. A sort of pseudo-app factory that allows you to
bind settings, set up routing, and set storage backends, but only acts on
a single app instance (rather than creating multiple instances).
:param settings_module: A string, the settings module to use.
:param set_backends: Whether to set the database storage backends.
:param routes: Whether to set the url map.
"""
# The settings module
settings = importlib.import_module(settings_module)
build_log_templates(settings)
init_addons(settings, routes)
build_js_config_files(settings)
app.debug = settings.DEBUG_MODE
if mfr:
init_mfr(app)
if set_backends:
logger.debug('Setting storage backends')
set_up_storage(
website.models.MODELS,
storage.MongoStorage,
addons=settings.ADDONS_AVAILABLE,
)
if routes:
try:
make_url_map(app)
except AssertionError: # Route map has already been created
pass
if attach_request_handlers:
attach_handlers(app, settings)
if app.debug:
logger.info("Sentry disabled; Flask's debug mode enabled")
else:
sentry.init_app(app)
logger.info("Sentry enabled; Flask's debug mode disabled")
if set_backends:
ensure_schemas()
apply_middlewares(app, settings)
return app
开发者ID:erinmayhood,项目名称:osf.io,代码行数:49,代码来源:app.py
示例17: setUp
def setUp(self):
super(TestRegistrations, self).setUp()
ensure_schemas()
self.user = UserFactory()
# Add an API key for quicker authentication
api_key = ApiKeyFactory()
self.user.api_keys.append(api_key)
self.user.save()
self.auth = ('test', api_key._primary_key)
self.original = ProjectFactory(creator=self.user, is_public=True)
# A registration
self.project = RegistrationFactory(
project=self.original,
user=self.user,
)
开发者ID:AndrewSallans,项目名称:osf.io,代码行数:15,代码来源:webtest_tests.py
示例18: setUp
def setUp(self):
super(TestSearchSerializer, self).setUp()
self.user = AuthUserFactory()
self.project = ProjectFactory(creator=self.user, is_public=True)
self.component = NodeFactory(parent=self.project, creator=self.user, is_public=True)
self.file = utils.create_test_file(self.component, self.user)
ensure_schemas()
self.schema = MetaSchema.find_one(
Q('name', 'eq', 'Replication Recipe (Brandt et al., 2013): Post-Completion') &
Q('schema_version', 'eq', LATEST_SCHEMA_VERSION)
)
with mock_archive(self.project, autocomplete=True, autoapprove=True, schema=self.schema) as registration:
self.registration = registration
开发者ID:alexschiller,项目名称:osf.io,代码行数:16,代码来源:test_serializers.py
示例19: test_question_in_registration_metadata_must_be_in_schema
def test_question_in_registration_metadata_must_be_in_schema(self):
ensure_schemas()
self.schema = MetaSchema.find_one(
Q("name", "eq", "OSF-Standard Pre-Data Collection Registration")
& Q("schema_version", "eq", LATEST_SCHEMA_VERSION)
)
self.payload["data"]["attributes"]["registration_supplement"] = self.schema._id
self.payload["data"]["attributes"]["registration_metadata"] = {}
self.payload["data"]["attributes"]["registration_metadata"]["q11"] = {
"value": "No, data collection has not begun"
}
res = self.app.post_json_api(self.url, self.payload, auth=self.user.auth, expect_errors=True)
errors = res.json["errors"][0]
assert_equal(res.status_code, 400)
assert_equal(errors["detail"], "Additional properties are not allowed (u'q11' was unexpected)")
开发者ID:ccfair,项目名称:osf.io,代码行数:16,代码来源:test_node_draft_registration_list.py
示例20: test_registration_metadata_question_values_must_be_dictionaries
def test_registration_metadata_question_values_must_be_dictionaries(self):
ensure_schemas()
self.schema = MetaSchema.find_one(
Q("name", "eq", "OSF-Standard Pre-Data Collection Registration")
& Q("schema_version", "eq", LATEST_SCHEMA_VERSION)
)
self.payload["data"]["attributes"]["registration_supplement"] = self.schema._id
self.payload["data"]["attributes"]["registration_metadata"] = {}
self.payload["data"]["attributes"]["registration_metadata"][
"datacompletion"
] = "No, data collection has not begun"
res = self.app.post_json_api(self.url, self.payload, auth=self.user.auth, expect_errors=True)
errors = res.json["errors"][0]
assert_equal(res.status_code, 400)
assert_equal(errors["detail"], "u'No, data collection has not begun' is not of type 'object'")
开发者ID:ccfair,项目名称:osf.io,代码行数:16,代码来源:test_node_draft_registration_list.py
注:本文中的website.project.model.ensure_schemas函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论