def testTranslations(self): widget = Widget.objects.get(pk=1) self.changeLanguage('en') data = get_widget_data(widget) self.assertEqual(data['displayName'], 'Test Widget') self.assertEqual(data['variables']['password']['label'], 'Password Pref') self.assertEqual(data['variables']['slot']['action_label'], 'Slot Action Label') self.changeLanguage('es') data = get_widget_data(widget) self.assertEqual(data['displayName'], 'Widget de prueba') self.assertEqual(data['variables']['password']['label'], u'Contraseña') self.assertEqual(data['variables']['slot']['action_label'], u'Etiqueta de acción del slot')
def test_basic_widget_creation(self): template_uri = "http://example.com/path/widget.xml" template = self.read_template('template1.xml') downloader.download_http_content.set_response(template_uri, template) downloader.download_http_content.set_response('http://example.com/path/test.html', BASIC_HTML_GADGET_CODE) resource = install_resource_to_user(self.user, file_contents=template, templateURL=template_uri) self.assertEqual(resource.vendor, 'Wirecloud') self.assertEqual(resource.short_name, 'test') self.assertEqual(resource.version, '0.1') self.assertEqual(resource.public, False) self.assertEqual(tuple(resource.users.values_list('username', flat=True)), (u'test',)) self.assertEqual(tuple(resource.groups.values_list('name', flat=True)), ()) widget = resource.widget self.changeLanguage('en') data = get_widget_data(widget) self.assertEqual(data['uri'], 'Wirecloud/test/0.1') self.assertEqual(data['vendor'], 'Wirecloud') self.assertEqual(data['name'], 'test') self.assertEqual(data['version'], '0.1') self.assertEqual(data['variables']['prop']['label'], 'Property label') self.assertEqual(data['variables']['prop']['aspect'], 'PROP') self.assertEqual(data['variables']['pref']['label'], 'Preference label') self.assertEqual(data['variables']['pref']['value_options'], [['1', 'Option name']]) self.assertEqual(data['variables']['pref']['aspect'], 'PREF') self.assertEqual(data['variables']['event']['label'], 'Event label') self.assertEqual(data['variables']['event']['aspect'], 'EVEN') self.assertEqual(data['variables']['slot']['label'], 'Slot label') self.assertEqual(data['variables']['slot']['aspect'], 'SLOT')
def test_basic_widget_creation_from_rdf(self): template_uri = "http://example.com/path/widget.rdf" template = self.read_template('template1.rdf') parser = TemplateParser(template) data = parser.get_resource_info() self.assertIn('requirements', data) self.assertItemsEqual(data['requirements'], ({'type': 'feature', 'name': 'Wirecloud'},)) downloader.download_http_content.set_response(template_uri, template) downloader.download_http_content.set_response('http://example.com/path/test.html', BASIC_HTML_GADGET_CODE) widget = install_resource(template, template_uri, self.user, False).widget self.changeLanguage('en') data = get_widget_data(widget) self.assertEqual(data['uri'], 'Wirecloud/test/0.1') self.assertEqual(data['vendor'], 'Wirecloud') self.assertEqual(data['name'], 'test') self.assertEqual(data['version'], '0.1') self.assertEqual(data['variables']['prop']['label'], u'Property Label') self.assertEqual(data['variables']['prop']['aspect'], 'PROP') self.assertEqual(data['variables']['pref']['label'], u'Preference Label') self.assertEqual(data['variables']['pref']['value_options'], [[u'1', u'Option Name']]) self.assertEqual(data['variables']['pref']['aspect'], 'PREF') self.assertEqual(data['variables']['event']['label'], u'Event Label') self.assertEqual(data['variables']['event']['aspect'], 'EVEN') self.assertEqual(data['variables']['slot']['label'], u'Slot Label') self.assertEqual(data['variables']['slot']['aspect'], 'SLOT')
def test_basic_ezweb_widget_creation(self): template_uri = "http://example.com/path/widget.xml" template = self.read_template('old-template.xml') downloader.download_http_content.set_response(template_uri, template) downloader.download_http_content.set_response('http://example.com/path/test.html', BASIC_HTML_GADGET_CODE) widget = install_resource(template, template_uri, self.user, False).widget self.changeLanguage('en') data = get_widget_data(widget) self.assertEqual(data['uri'], 'Wirecloud/test/0.1') self.assertEqual(data['vendor'], 'Wirecloud') self.assertEqual(data['name'], 'test') self.assertEqual(data['version'], '0.1') self.assertEqual(data['variables']['prop']['label'], 'Property label') self.assertEqual(data['variables']['prop']['aspect'], 'PROP') self.assertEqual(data['variables']['pref']['label'], 'Preference label') self.assertEqual(data['variables']['pref']['value_options'], [['1', 'Option name']]) self.assertEqual(data['variables']['pref']['aspect'], 'PREF') self.assertEqual(data['variables']['event']['label'], 'Event label') self.assertEqual(data['variables']['event']['aspect'], 'EVEN') self.assertEqual(data['variables']['slot']['label'], 'Slot label') self.assertEqual(data['variables']['slot']['aspect'], 'SLOT') self.assertEqual(data['variables']['language']['aspect'], 'ECTX') self.assertEqual(data['variables']['language']['concept'], 'language') self.assertEqual(data['variables']['user']['aspect'], 'ECTX') self.assertEqual(data['variables']['user']['concept'], 'username') self.assertEqual(data['variables']['width']['aspect'], 'GCTX') self.assertEqual(data['variables']['width']['concept'], 'widthInPixels')
def test_repeated_translation_indexes(self): template_uri = "http://example.com/path/widget.xml" template = self.read_template('template2.xml') downloader.download_http_content.set_response(template_uri, template) downloader.download_http_content.set_response('http://example.com/path/test.html', BASIC_HTML_GADGET_CODE) widget = install_resource(template, template_uri, self.user, False).widget self.changeLanguage('en') data = get_widget_data(widget) self.assertEqual(data['displayName'], 'Test Widget') self.assertEqual(data['version'], '0.2') self.assertEqual(data['variables']['prop']['label'], 'Label') self.assertEqual(data['variables']['pref']['label'], 'Label') self.assertEqual(data['variables']['event']['label'], 'Label') self.assertEqual(data['variables']['slot']['label'], 'Label')
def read(self, request): resources = {} for resource in CatalogueResource.objects.filter(Q(public=True) | Q(users=request.user) | Q(groups=request.user.groups.all())): if resource.resource_type() == 'widget': try: widget = resource.widget resources[resource.local_uri_part] = get_widget_data(widget, request) resources[resource.local_uri_part]['type'] = 'widget' except Widget.DoesNotExist: pass else: options = json.loads(resource.json_description) resources[resource.local_uri_part] = options return HttpResponse(json.dumps(resources), mimetype='application/json; chatset=UTF-8')
# TODO for now, install dependencies if force_create is true install_dep = force_create try: resource = install_resource_to_user(request.user, file_contents=file_contents, templateURL=templateURL, packaged=packaged, raise_conflicts=force_create) except TemplateParseException, e: return build_error_response(request, 400, unicode(e.msg)) except IntegrityError: return build_error_response(request, 409, _('Resource already exists')) if resource.resource_type() == 'widget': data = get_widget_data(resource.widget, request) data['type'] = 'widget' if install_dep: return HttpResponse(simplejson.dumps((data,)), status=201, mimetype='application/json; charset=UTF-8') else: return HttpResponse(simplejson.dumps(data), status=201, mimetype='application/json; charset=UTF-8') elif install_dep and resource.resource_type() == 'mashup': resources = [json.loads(resource.json_description)] workspace_info = json.loads(resource.json_description) for tab_entry in workspace_info['tabs']: for resource in tab_entry['resources']: widget = get_or_add_widget_from_catalogue(resource.get('vendor'), resource.get('name'), resource.get('version'), request.user) widget_data = get_widget_data(widget, request) widget_data['type'] = 'widget' resources.append(widget_data)