Alright, I printed all the tables to the stdout, while in the test,
and the table was not created before running the test. Am I missing
something here? Just creating the model and associating the app in
INSTALLED_APPS isn't enough?

Also, there's another model in the same "models.py" module, and it's
being loaded by the tests... is there any chance it's interfering in
the other model? Here it is:

# gear/models.py

class DrumPiece(models.Model):
    CATEGORY_CHOICES = (
        ('cymbals', 'Cymbals'),
        ('drums', 'Drums'),
        ('sticks', 'Sticks'),
        ('heads-and-muffling', 'Heads and Muffling'),
        ('microphones', 'Microphones'),
        ('percussion', 'Percussion'),
        ('cases', 'Cases'),
        ('m-audio', 'M-Audio'),
    )
    title = models.CharField(max_length=200)
    description = models.TextField()
    category = models.CharField(max_length=20,
choices=CATEGORY_CHOICES)
    image = ImageField(upload_to=env.get('files_uploads'))
    sites = models.ManyToManyField(Site, blank=True, null=True)

    def __unicode__(self):
        return self.title

    def save(self, *args, **kwargs):
        choices = [choice[0] for choice in self.CATEGORY_CHOICES]
        if self.category is not None and self.category not in choices:
            self.category = self.CATEGORY_CHOICES[0][0]
        super(DrumPiece, self).save(*args, **kwargs)


Thanks again!

Diogo



On Mar 7, 1:41 pm, Diogo Baeder <diogobae...@gmail.com> wrote:
> Hi there,
>
> I'm having this weird error, where Django is failing while trying to run
> one of my integration tests, saying that it couldn't find the necessary
> table to create the model instance I want.
>
> Here are the relevant parts of my code, an I'm running the tests in
> SQLite in memory:
>
> # gear/tests.py
> from gear.models import ToGoPage
> #...
> class ToGoPageViewTest(TestCase):
>      @istest
>      def shows_an_active_to_go_page(self):
>          to_go_page = ToGoPage.objects.create(
>              content='Some content',
>              active=True
>          )
>
>          response =
> self.client.get('/do-you-want-daniel-playing-in-your-cd/')
>
>          self.assertContains(response, 'Some content')
>
> # gear/models.py
> class ToGoPage(models.Model):
>      content = models.TextField()
>      active = models.BooleanField(default=True)
>
> # the traceback when I run the test
> ======================================================================
> ERROR: shows_an_active_to_go_page (danielbaeder.gear.tests.ToGoPageViewTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>    File
> "/home/diogo/sites/projetos/danielbaeder/danielbaeder/../danielbaeder/gear/ 
> tests.py",
> line 140, in shows_an_active_to_go_page
>      active=True
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /manager.py",
> line 138, in create
>      return self.get_query_set().create(**kwargs)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /query.py",
> line 360, in create
>      obj.save(force_insert=True, using=self.db)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /base.py",
> line 460, in save
>      self.save_base(using=using, force_insert=force_insert,
> force_update=force_update)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /base.py",
> line 553, in save_base
>      result = manager._insert(values, return_id=update_pk, using=using)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /manager.py",
> line 195, in _insert
>      return insert_query(self.model, values, **kwargs)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /query.py",
> line 1436, in insert_query
>      return query.get_compiler(using=using).execute_sql(return_id)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /sql/compiler.py",
> line 791, in execute_sql
>      cursor = super(SQLInsertCompiler, self).execute_sql(None)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/models 
> /sql/compiler.py",
> line 735, in execute_sql
>      cursor.execute(sql, params)
>    File
> "/home/diogo/Envs/danielbaeder/lib/python2.6/site-packages/django/db/backen 
> ds/sqlite3/base.py",
> line 234, in execute
>      return Database.Cursor.execute(self, query, params)
> DatabaseError: no such table: gear_togopage
>
> Any ideas? Shouldn't Django be creating the table for me, among other
> tables, since I'm running the test suite?
>
> Thanks!
>
> --
> Diogo Baeder - desenvolvedor webhttp://diogobaeder.com.br

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to