Commit c640592e2468dcee6e72a95d8b54944a2cc1d885

Authored by Carlos Vieira
1 parent 9eef7283
Exists in master

Modificando forma de compilar/teste

@@ -20,5 +20,10 @@ test/resultado.txt @@ -20,5 +20,10 @@ test/resultado.txt
20 test-reports.xml 20 test-reports.xml
21 21
22 # Vagrant files # 22 # Vagrant files #
23 -################ 23 +#################
24 .vagrant 24 .vagrant
  25 +
  26 +# Enviroment files #
  27 +####################
  28 +venv
  29 +node_modules
@@ -27,15 +27,6 @@ Altere o arquivo 'app/profile' para apontar para o novo profile. Exemplo: @@ -27,15 +27,6 @@ Altere o arquivo 'app/profile' para apontar para o novo profile. Exemplo:
27 27
28 Esses são comandos exemplos, por favor verifique no seu sistema como deve ser instalado. 28 Esses são comandos exemplos, por favor verifique no seu sistema como deve ser instalado.
29 29
30 - * flask  
31 - pip install flask  
32 - * assetgen  
33 - pip install assetgen  
34 - * config  
35 - pip install config  
36 - * tavutil  
37 - pip install tavutil  
38 -  
39 * node.js 30 * node.js
40 apt-get install python-software-properties python g++ make 31 apt-get install python-software-properties python g++ make
41 add-apt-repository ppa:chris-lea/node.js 32 add-apt-repository ppa:chris-lea/node.js
@@ -43,44 +34,25 @@ Esses são comandos exemplos, por favor verifique no seu sistema como deve ser i @@ -43,44 +34,25 @@ Esses são comandos exemplos, por favor verifique no seu sistema como deve ser i
43 apt-get install nodejs 34 apt-get install nodejs
44 apt-get install npm 35 apt-get install npm
45 36
46 - * coffeescript  
47 - npm install -g coffee-script  
48 -  
49 * sass 37 * sass
50 apt-get install ruby-full build-essential 38 apt-get install ruby-full build-essential
51 apt-get install rubygems 39 apt-get install rubygems
52 gem install sass 40 gem install sass
53 sass -v 41 sass -v
54 42
55 - * uglifyjs  
56 - npm install -g uglify-js  
57 - (Debian ou Ubuntu: apt-get install node-uglify)  
58 * zlib 43 * zlib
59 44
  45 +## Para criar o ambiente de desenvolvimento execute:
60 46
61 -Para profiling é necessário além dos acima:  
62 -  
63 - * werkzeug  
64 -  
65 -Para testes headless é necessário também:  
66 -  
67 - * mocha  
68 - npm install mocha  
69 -  
70 - * chai  
71 - npm install chai 47 +> make venv
72 48
73 - * chai-jq  
74 - npm install chai-jq 49 +## Para profiling é necessário além dos acima:
75 50
76 - * ejs  
77 - npm install ejs 51 + * werkzeug
78 52
79 - * express  
80 - npm install express 53 +E execute o
81 54
82 - * zombie  
83 - npm install zombie 55 +> make profile
84 56
85 ## Usando vagrant: 57 ## Usando vagrant:
86 58
@@ -94,15 +66,19 @@ cd /vagrant/ @@ -94,15 +66,19 @@ cd /vagrant/
94 66
95 Execute o comando: 67 Execute o comando:
96 68
97 -> ./build.sh _profile_ 69 +> make run
98 70
99 -Se não for especificado nenhum _profile_ o profile _default_ será selecionado. 71 +O profile selecionado será o contido em _app/profile_
100 72
101 ## Testes da barra 73 ## Testes da barra
102 74
103 Execute o comando: 75 Execute o comando:
104 76
105 -> mocha 77 +> make teste
  78 +
  79 +Para gerar um teste em XUNIT execute
  80 +
  81 +> make testReport
106 82
107 # Requisitos da Barra 83 # Requisitos da Barra
108 ---- 84 ----
app/barrabrasil.py
@@ -58,10 +58,10 @@ def barra(): @@ -58,10 +58,10 @@ def barra():
58 resposta.headers['Last-Modified'] = data 58 resposta.headers['Last-Modified'] = data
59 return resposta 59 return resposta
60 60
61 -#if __name__ == '__main__':  
62 -# import webbrowser  
63 -# webbrowser.open("http://127.0.0.1:5000/",new=1)  
64 -# app.run(host='0.0.0.0', debug=True) 61 +if __name__ == '__main__':
  62 + import webbrowser
  63 + webbrowser.open("http://127.0.0.1:5000/",new=1)
  64 + app.run(host='0.0.0.0', debug=True)
65 #webbrowser.open("https://127.0.0.1:5000/",new=2) 65 #webbrowser.open("https://127.0.0.1:5000/",new=2)
66 #app.run(debug=False,ssl_context=ctx) 66 #app.run(debug=False,ssl_context=ctx)
67 67
app/profile.py
@@ -4,4 +4,6 @@ from barrabrasil import app @@ -4,4 +4,6 @@ from barrabrasil import app
4 4
5 app.config['PROFILE'] = True 5 app.config['PROFILE'] = True
6 app.wsgi_app = ProfilerMiddleware(app.wsgi_app, restrictions = [30]) #30 que mais demoraram 6 app.wsgi_app = ProfilerMiddleware(app.wsgi_app, restrictions = [30]) #30 que mais demoraram
7 -app.run(debug = True) 7 +import webbrowser
  8 +webbrowser.open("http://127.0.0.1:5000/",new=1)
  9 +app.run(host='0.0.0.0', debug=True)
@@ -4,7 +4,7 @@ if [ -n "$1" ] @@ -4,7 +4,7 @@ if [ -n "$1" ]
4 then 4 then
5 profile=$1 5 profile=$1
6 else 6 else
7 - profile='default' 7 + profile=$(cat app/profile | awk 'FNR == 1 {print $3}')
8 fi 8 fi
9 9
10 if test -d "recipes/$profile" 10 if test -d "recipes/$profile"
@@ -15,9 +15,11 @@ then @@ -15,9 +15,11 @@ then
15 touch profile 15 touch profile
16 echo 'profile :' $profile > profile 16 echo 'profile :' $profile > profile
17 echo 'date : "'$(date -R)'"'>> profile 17 echo 'date : "'$(date -R)'"'>> profile
18 - mkdir templates/$profile 18 + if test ! -d "templates/$profile"
  19 + then
  20 + mkdir templates/$profile
  21 + fi
19 cp templates/$profile/* static/ #Copiando enquanto a barra é estática. 22 cp templates/$profile/* static/ #Copiando enquanto a barra é estática.
20 - python barrabrasil.py  
21 else 23 else
22 - echo "Error. Profile $1 does not exist." 24 + echo "Erro. O profile '$profile' não existe."
23 fi 25 fi
makefile 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +# Makefile
  2 +run: build
  3 + venv/bin/python app/barrabrasil.py
  4 +
  5 +
  6 +profile: build
  7 + venv/bin/python app/profile.py
  8 +
  9 +build: venv
  10 + sh ./build.sh
  11 +
  12 +venv: venv/bin/activate
  13 +venv/bin/activate: requirements.txt package.json
  14 + test -d .env || virtualenv --no-site-packages venv
  15 + venv/bin/pip install -Ur requirements.txt
  16 + touch venv/bin/activate
  17 + npm install
  18 +
  19 +testReport:
  20 + npm run testReport
  21 +
  22 +teste:
  23 + npm test
  24 +
  25 +
  26 +
  27 +
package.json 0 → 100644
@@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
  1 +{
  2 +"name": "BarraBrasil",
  3 +"description": "Barra oficial do governo federal brasileiro",
  4 +"version": "2.1.3",
  5 +"engines": {
  6 +"node": "~0.10"
  7 +},
  8 +"dependencies": {
  9 +"jsdom": "3.1.2",
  10 +"uglifyjs": "*",
  11 +"coffee-script": "*",
  12 +"express": "*",
  13 +"chai": "*",
  14 +"chai-jq": "*",
  15 +"mocha": "*",
  16 +"zombie": "*",
  17 +"ejs": "*"
  18 +},
  19 +"optionalDependencies": {},
  20 +"scripts": {
  21 +"testReport": "./node_modules/.bin/mocha --timeout 30000 --recursive -R xunit test/ > test-reports.xml",
  22 +"test": "./node_modules/.bin/mocha --timeout 30000 --recursive test/"
  23 +}
  24 +}
  25 +
recipes/default/assets.json
1 -{"barra-brasil.js": "barra-brasil.js"}  
2 \ No newline at end of file 1 \ No newline at end of file
  2 +{"footer-brasil-1.js": "footer-brasil-1.js", "estilo-footer.css": "estilo-footer.css", "footer-brasil-css.js": "footer-brasil-css.js"}
3 \ No newline at end of file 3 \ No newline at end of file
recipes/default/compile.sh
1 #!/bin/sh 1 #!/bin/sh
2 -assetgen ./barra-brasil-1.yaml  
3 -assetgen ./barra-brasil-2.yaml  
4 -assetgen ./footer-brasil-1.yaml  
5 -assetgen ./footer-brasil-2.yaml  
6 -assetgen ./barra-brasil-final.yaml 2 +export PATH=$PATH:../../node_modules/.bin/
  3 +../../venv/bin/assetgen ./barra-brasil-1.yaml
  4 +../../venv/bin/assetgen ./barra-brasil-2.yaml
  5 +../../venv/bin/assetgen ./footer-brasil-1.yaml
  6 +../../venv/bin/assetgen ./footer-brasil-2.yaml
  7 +../../venv/bin/assetgen ./barra-brasil-final.yaml
7 8
requirements.txt 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +Flask
  2 +Assetgen
  3 +Config