Skip to content

Commit

Permalink
initial test data, view using data from database
Browse files Browse the repository at this point in the history
  • Loading branch information
brunosmartin committed Jul 26, 2013
1 parent aa8d2a4 commit eefc349
Show file tree
Hide file tree
Showing 6 changed files with 354 additions and 15 deletions.
49 changes: 46 additions & 3 deletions tests/test_models.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# coding: utf-8

from pyramid import testing
from paste.deploy.loadwsgi import appconfig

Expand All @@ -18,7 +20,7 @@
# Base.metadata.create_all(engine)


class BaseModelTest():
class BaseTestCase():
@classmethod
def setup_class(cls):
cls.engine = engine_from_config(settings, prefix='sqlalchemy.')
Expand Down Expand Up @@ -46,12 +48,53 @@ def teardown_method(self, method):
self.session.close()


class TestVideo(BaseModelTest):
class TestVideo(BaseTestCase):
def test(self):
from timtec.models import Video
video = Video(name='Video de teste', url='http://timtec.com.br')
video = Video(name='Video de teste', youtube_id='http://timtec.com.br')
self.session.add(video)
self.session.commit()
query = self.session.query(Video.name).filter_by(name='Video de teste')
name = query.all()[0][0]
assert video.name == name


class TestViews(BaseTestCase):

# def setup_method(self, method):
# self.config = testing.setUp(request=testing.DummyRequest())
# super(TestViews, self).setup_method()

def test_course_intro(self):
from timtec.views import CourseController
from timtec.models import (
Course,
CourseProfessors,
User,
)
course = Course()
course.slug = u'dbsql'
course.name = u'Banco de Dados e SQL'
course.description = u'Introdução a Bancos de Dados e Linguagem SQL'

user = User(username='ramalho', password='kdkdk', email='skdsk@vcx')
user.name = u'Luciano Ramalho'
course_professors = CourseProfessors()
course_professors.user = user
course_professors.biography = (
u'Mussum ipsum cacilds, vidis litro abertis. Consetis'
u'adipiscings elitis. Pra lá , depois divoltis porris,'
u'paradis. Paisis, filhis, espiritis santis. Mé faiz elementum'
u' girarzis, nisi eros vermeio, in elementis mé pra quem é'
u'amistosis quis leo. Manduma pindureta quium dia nois paga.'
u'bolis eu num gostis.'
)
course.professors.append(course_professors)
DBSession.add(course)

request = testing.DummyRequest()
course_controller = CourseController(request)
response = course_controller.intro()
assert response['course'] == course
assert response['course'].professors[0] == course_professors
assert response['course'].professors[0].user == user
27 changes: 23 additions & 4 deletions timtec/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def __tablename__(cls):


class User(UserMixin, Base):
pass
name = sa.Column(sa.Unicode(255))


class Group(GroupMixin, Base):
Expand All @@ -77,7 +77,7 @@ class UserBadge(Base):

class Video(Base):
name = sa.Column(sa.Unicode(255))
url = sa.Column(sa.Unicode(255))
youtube_id = sa.Column(sa.Unicode(255))
accesses = relationship('AccessedVideo', backref='access_videos')


Expand All @@ -91,14 +91,28 @@ class AccessedVideo(Base):

class Course(Base):
"""Course """
name = sa.Column(sa.Unicode(255), nullable=False)
slug = sa.Column(sa.Unicode(255), nullable=False)
name = sa.Column(sa.Unicode(255))
description = sa.Column(sa.UnicodeText())
abstract = sa.Column(sa.UnicodeText())
knowledge_acquired = sa.Column(sa.UnicodeText())
knowledge_required = sa.Column(sa.UnicodeText())
professors = relationship('CourseProfessors', backref='teaching_courses')
professors = relationship('CourseProfessors', backref='course')
intro_video_id = sa.Column(sa.Integer, sa.ForeignKey('{0}.id'.format(Video.__tablename__)))
intro_video = relationship('Video')
students = relationship('CourseStudents', backref='courses')
status = sa.Column(sa.Unicode(255))
# discutir com anderson como vai ser o tempo estimado
time_estimated = sa.Column(sa.Unicode(255))
extra_dadication = sa.Column(sa.Unicode(255))

def __unicode__(self):
"""This is used to render the model in a relation field. Must return an
unicode string."""
return self.name

def __repr__(self):
return '<Curso {0}>'.format(self.nama)
# wiki
# forum
# notes
Expand All @@ -113,12 +127,17 @@ class CourseStudents(Base):
class CourseProfessors(Base):
course_id = sa.Column(sa.Integer, sa.ForeignKey('{0}.id'.format(Course.__tablename__)))
professors_id = sa.Column(sa.Integer, sa.ForeignKey('{0}.id'.format(User.__tablename__)))
user = relationship('User', backref='course')
start = sa.Column(sa.DateTime())
biography = sa.Column(sa.UnicodeText())
# couse role


class Klass(Base):
name = sa.Column(sa.Unicode(255))
desc = sa.Column(sa.Unicode(255))
course_id = sa.Column(sa.Integer, sa.ForeignKey('{0}.id'.format(Course.__tablename__)))
course = relationship('Course', backref='klasses')
videos = relationship('KlassVideo', backref='klasses')
students = relationship('KlassStudent', backref='klasses')
activities = relationship('KlassActivity')
Expand Down
90 changes: 87 additions & 3 deletions timtec/scripts/initializedb.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# coding: utf-8

import os
import sys
import transaction
Expand All @@ -22,6 +24,90 @@ def usage(argv):
sys.exit(1)


def initial_dev_data():
from ..models import (
User,
Course,
Klass,
CourseProfessors,
)
with transaction.manager:
course = Course()
course.slug = u'dbsql'
course.name = u'Banco de Dados e SQL'
course.description = u'Introdução a Bancos de Dados e Linguagem SQL'
course.abstract = (
u'Mussum ipsum cacilds, vidis litro abertis. Consetis'
u'adipiscings elitis. Pra lá , depois divoltis porris,'
u'paradis. Paisis, filhis, espiritis santis. Mé faiz elementum'
u' girarzis, nisi eros vermeio, in elementis mé pra quem é'
u'amistosis quis leo. Manduma pindureta quium dia nois paga.'
u' Sapien in monti palavris qui num significa nadis i pareci '
u'latim. Interessantiss quisso pudia ce receita de bolis, mais '
u'bolis eu num gostis.'
)

course.knowledge_acquired = (
u'Suco de cevadiss, é um leite divinis, qui tem lupuliz, matis, aguis'
u' e fermentis. Interagi no mé, cursus quis, vehicula ac nisi. Aenean '
u'vel dui dui. Nullam leo erat, aliquet quis tempus a, posuere ut mi. '
u'Ut scelerisque neque et turpis posuere pulvinar pellentesque nibh ullamcorper. '
u'Pharetra in mattis molestie, volutpat elementum justo. Aenean ut ante turpis. '
u'Pellentesque laoreet mé vel lectus scelerisque interdum cursus velit auctor. '
u'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ac mauris lectus, '
u'non scelerisque augue. Aenean justo massa.'

)
course.knowledge_required = (
u'Casamentiss faiz malandris se pirulitá, Nam liber tempor cum soluta nobis eleifend '
u'option congue nihil imperdiet doming id quod mazim placerat facer possim assum. '
u'Lorem ipsum dolor sit amet, consectetuer Ispecialista im mé intende tudis nuam golada, '
u'vinho, uiski, carirí, rum da jamaikis, só num pode ser mijis. Adipiscing elit, sed '
u'diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. '
u'Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis '
u'nisl ut aliquip ex ea commodo consequat.'
)
course.time_estimated = u'1 mês'
course.extra_dadication = u'40 horas'

klasses = [
(u'Apresentando: Bancos de Dados', u'Para que servem os bancos de dados'),
(u'Programas para operar bancos de dados', u'Software para bancos de dados'),
(u'O que é SQL', u'Ésse-quê-éle'),
(u'Organizando os dados', u'Organizando os dados'),
(u'Instalar e testar o SQLite', u'Instalar os programas para praticar'),
]

for klass_title, klass_desc in klasses:
klass = Klass()
klass.name = klass_title
klass.desc = klass_desc
course.klasses.append(klass)
# DBSession.add(klass)

user1 = User(username='ramalho', password='kdkdk', email='skdsk@vcx')
user1.name = u'Luciano Ramalho'
professor2 = User(username='Lucia', password='kdkdk', email='skdsk@asdf')
professor2.name = u'Lucia Silva'

course_professors = CourseProfessors()
course_professors.user = user1
course_professors.biography = (
u'Mussum ipsum cacilds, vidis litro abertis. Consetis'
u'adipiscings elitis. Pra lá , depois divoltis porris,'
u'paradis. Paisis, filhis, espiritis santis. Mé faiz elementum'
u' girarzis, nisi eros vermeio, in elementis mé pra quem é'
u'amistosis quis leo. Manduma pindureta quium dia nois paga.'
u'bolis eu num gostis.'
)
course.professors.append(course_professors)

course_professors2 = CourseProfessors()
course_professors2.professor = professor2
course.professors.append(course_professors2)
DBSession.add(course)


def main(argv=sys.argv):
if len(argv) != 2:
usage(argv)
Expand All @@ -31,6 +117,4 @@ def main(argv=sys.argv):
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
Base.metadata.create_all(engine)
# with transaction.manager:
# model = MyModel(name='one', value=1)
# DBSession.add(model)
initial_dev_data()
35 changes: 35 additions & 0 deletions timtec/templates/base.pt
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,40 @@

<!-- CONTAINER -->
<metal:content define-slot="container" />
<!-- END CONTAINER -->

<!-- FOOTER -->
<div class="footer">
<div class="container">
<div class="row-fluid">
<div class="span3">
<ul class="no-bullet">
<li><a href="">Sobre</a></li>
<li><a href="">Equipe</a></li>
<li><a href="">Imprensa</a></li>
<li><a href="">Contato</a></li>
</ul>
</div>
<div class="span3">
<ul class="no-bullet">
<li><a href="">Blog</a></li>
<li><a href="">Ajuda</a></li>
<li><a href="">FAQ</a></li>
</ul>
</div>
<div class="span3">
<ul class="no-bullet">
<li><a href="">Política de Uso</a></li>
<li><a href="">Política de Privacidade</a></li>
</ul>
</div>
<div class="span3">
Coluna 4
</div>
</div>
</div>
</div>
<!-- END FOOTER -->

</body>
</html>
Loading

0 comments on commit eefc349

Please sign in to comment.