def test_void_tag_insertion(self): with self.assertRaises(TagError): d = Br()(Div(id='test_void_tag_insertion')) br = Br() with self.assertRaises(TagError): p = Div().append_to(br)
def test_find(self): tag = Div()(A(), A(), Pre(), Br(), Div()(A()), foo=Br()) result = tag.find() # will return a generator yielding all the children -> (A(),A(),Pre(),Br(),Div(),A(),Br()) self.assertEqual(len(result), 7) result = tag.find(names='foo') # will return a generator yielding all the children named foo -> (Br()) self.assertEqual(len(result), 1) result = tag.find(A) # will return a generator yielding all the children instances of A -> (A(),A(),A()) self.assertEqual(len(result), 3) result = tag.find('Pre') # will return a generator yielding all the children instances of Pre -> (Pre()) self.assertEqual(len(result), 1) result = tag.find('Br', names='foo') # will return foo -> (Br()) self.assertEqual(len(result), 1)
def test_dump(self): # Test T dumping a Tempy object to a file result = """# -*- coding: utf-8 -*- from tempy import T from tempy.tags import * Div(klass="cssClass", bool_attr="True")(A(href=\"\"\"www.foo.bar\"\"\")(\"\"\"non-tempy content\"\"\"), T.CustomTag(numb_attr=9), Br(), Doctype("html"), Comment("test comment"), T.Void.TestVoid())""" filename = 'test.py' tempy_tree = [ Div(klass='cssClass', bool_attr=bool)(A(href='www.foo.bar')('non-tempy content'), T.CustomTag(numb_attr=9), Br(), Doctype('html'), Comment('test comment'), T.Void.TestVoid()), ] T.dump(tempy_tree, filename) with open(filename, 'r') as f: self.assertEqual(Counter(f.read()), Counter(result)) os.remove(filename) T.dump(tempy_tree, 'test') os.remove(filename) with self.assertRaises(ValueError): T.dump(tempy_tree, 'test.jpg') with self.assertRaises(ValueError): T.dump(tempy_tree, None)
def init(self): self(Div(klass='pageTitle')('Rottura Del Silenzio')) self( Pre(klass='preText')(""" Dal 1998 Associazione Ekidna organizza la Rottura Del Silenzio, un festival diy (do it yourself). Dopo 20 anni non sappiamo più cosa dire per raccontarla, quindi lo lasciamo fare agli altri:""" ), Blockquote()(Pre(klass='preText')("""Succede che in Emilia, qui dalle nostre parti, finita la primavera, ci viene una certa voglia di stare seduti su un prato tutti rivolti verso un palco, con uno sguazzone in mano (acqua frizzante con vino bianco scadente), andando a tempo di musica con la testa. Il bello di queste cose è che iniziano al venerdì sera e vanno avanti fino alla domenica. Un’altra cosa bella è che solitamente si entra a offerta libera;: lasci quello che vuoi, se lo vuoi. Entri in questi posti e sei circondato tutto il giorno dalla musica di gruppi di cui non conosci manco il nome ma dentro di te pensi: “Cazzo! Questi spaccano!” e avvicinandoti ad una tizia chiedi il nome di chi ha appena suonato così te li puoi andare a riascoltare su Spotify, scoprendo poi che sono meglio dal vivo. Ti chiedi anche se la conversazione con la tizia citata sopra avrà un epilogo felice, ma scopri con grosso dispiacere che è lesbica e che quindi, forse, è meglio tornare con i tuoi amici a fumare e a prendere l’ennesimo sguazzone. Girando scopri anche che ci sono un sacco di banchetti. Ce n’è uno di un’etichetta indipendente che crede ancora nel fare musica DOITYOURSELF, come dovrebbe essere. Poi ce n’è un altro di una rivista, che stampa giornaletti e li dà via a gratis! Cioè veramente, tu puoi prenderne quanti ne vuoi, per amici, parenti, morose, basta che si leggano. Guarda questi! Scrivono per il puro piacere di scrivere, per il puro piacere di raccontare. Sempre DOITYOURSELF, sia chiaro! Poi ce n’è un altro che vende braccialetti DOITYOURSELF di cui sicuramente la tua ex-morosa fricchettona-ma-anche-no, ne sarebbe stata entusiasta. Poi ragioni un po’ sul DOITYOURSELF, ma veramente questa gente si sbatte per fare qualcosa? Ti guardi intorno e vedi che sono tutti felici e sorridenti, come dovrebbe essere. Capisci che queste persone si sbattono perchè lo vogliono, per l’amore di fare, per lo stare insieme, per la musica e per divertirsi. E pensi che questo posto è proprio un bel posto. Uno di questi si chiama Ekidna, un circolo alle porte di Carpi (San Martino Scuole), a cui piace molto fare le cose (e le fanno veramente bene). In estate organizza questo festival che si chiama ROTTURA DEL SILENZIO; ora mai sono arrivati alla diciannovesima edizione. Quest’anno si svolgerà il 17-18-19 giugno e noi di Mumble: siamo felicissimi di farne parte. Per tutti i tre giorni ci suoneranno un sacco di gruppi, banchetti, cibo e sguazzoni. Il tutto è ad offerta libera e consigliamo veramente la presenza, non per tutte le cose citate sopra, ma perchè, in realtà, questi ragazzi hanno un Idromele (DOITYOURSELF) che è la fine del mondo.""" )), "Giacomo Malaguti - ", A(href="http://www.mumbleduepunti.it/")('MUMBLE:'), Br(), Br(), "Per proporvi con banchetti, per dare una mano, per seperne qualcosa di più o solo per dire che ti piace: ", A(href="https://www.facebook.com/rotturadelsilenzio/")('facebook.com/rotturadelsilenzio') ) self(Br(), Br()) self(Div(id='photos')( Img(src=url_for('static', filename='img/rottura/%s' % pic)) for pic in sorted(self._data.get('locandine',[]), reverse=True) ) ) self(self._get_analytics())
def init(self): self( Center()(Img(src=url_for('static', filename='img/ekidna.png'))), Br(), Div(klass='pageTitle')(Center()('Chi Siamo')), Pre(klass='preText')("""Fondata nel 1998, l'Associazione Culturale Ekidna si occupa di costruire uno spazio/cantiere aperto alle realtà culturali ed artistiche della zona (ma non solo) che necessitano di spazi di creazione e di visibilità, in un sistema che tende a schiacciare e a rendere pressocchè invisibile tutto ciò che non è commerciabile con alto profitto. Nel 2002 il progetto si è concretizzato nelle Ex-Scuole Ernesta Bertesi, di San Martino sul Secchia (nelle campagne carpigiane), concesse in comodato d'uso dal Comune di Carpi, dopo lunghe vicissitudini burocratiche. La struttura fu consegnata in stato di totale abbandono e, da allora, la scelta di Ekidna è stata quella di fornire lavoro volontario ed investire i proventi delle iniziative nella ristrutturazione dello stabile, perchè i progetti artistici possano avere un luogo dove nascere e crescere. Ekidna è un centro autogestito, completamente slegato da qualsiasi partito o potere politico, che deve quindi auto-finanziarsi completamente, con iniziative di vario genere, legate alle varie discipline artistiche e ad attività culturali."""), ) self(Div(klass='pdf')(A(target='_blank', href=url_for('static', filename='files/chisiamo/%s' % file))(Img(klass='socialIcon', src=url_for('static', filename='img/pdf.png')), file.title()[:-4])) for file in self._data['files']) self(self._get_analytics())
def init(self): self(Div(klass='pageTitle')('Contatti')) self( "Ekidna è uno spazio aperto ad ogni proposta, se hai una band e ti piacerebbe suonare da noi, se sei un'agenzia e vuoi proporci il tuo rooster, se hai un'idea che vorresti realizzare in Ekidna, scrivici!", Br(), "Cerchiamo di rispondere a tutti, e di dare spazio a tutti.", Br(), "Scrivici a ", A(href='mailto:[email protected]')('*****@*****.**'), Br(), "Oppure su ", A(href='http://www.facebook.com/associazioneekidna')('Facebook'), Br(), "Ma il modo migliore per proporci qualcosa è (se sei della zona) venire alle nostre riunioni settimanali (di solito il martedì, ma può variare)" ) self(Div(klass='pageTitle')('Social')) self( Img(klass='socialIcon', src=url_for('static', filename='img/social/facebook.png')), A(href='http://www.facebook.com/associazioneekidna')('Facebook'), Img(klass='socialIcon', src=url_for('static', filename='img/social/blogspot.png')), A(href='http://associazioneekidna.blogspot.it/')('Blogspot'), Img(klass='socialIcon', src=url_for('static', filename='img/social/twitter.png')), A(href='http://twitter.com/ekidnacarpi')('Twitter'), Img(klass='socialIcon', src=url_for('static', filename='img/social/youtube.png')), A(href='http://www.youtube.com/channel/UC9URlWUKYelFlTBrFvc7Nyw')('YouTube'), ) self(self._get_analytics())