def test_no_filter(self):
        " all available internships if there's no filter "
        request = self.factory.get('/estagios/')    
        
        create_internship('sparkit', 'sg')        
        # expired > not available
        create_internship('sparkit', 'rio', tags=['tag1', 'tag2'], expiration=self.yesterday)

        search = InternshipSearch(request)
    
        self.assertEquals(len(search.get_queryset()), 1)
    def test_state_get_filter(self):
        ''' filter state using GET: ?uf=RJ '''
        request = self.factory.get('/estagios/?uf=rj')

        i1 = create_internship('visagio', 'rio', tags=['tag3', ])
        i2 = create_internship('vale', 'sampa', tags=['tag1',])
        
        int_search = InternshipSearch(request)
        results = int_search.get_queryset()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0], i1)
    def test_field_filter(self):
        request = self.factory.get('/direito/')
        direito = Field.objects.get(slug='direito')

        i1 = create_internship('visagio', 'rio', tags=['tag3', ], field=direito)
        i2 = create_internship('vale', 'sampa', tags=['tag1',])

        
        int_search = InternshipSearch(request, field_slug=direito.slug)
        results = int_search.get_queryset()

        self.assertEquals(len(results), 1)
        self.assertEquals(results[0], i1)
    def test_tag_filter(self):
        "filter by tags"
        i1 = create_internship('sparkit', 'sg')        
        i2 = create_internship('vale', 'sampa', tags=['tag1',])
        i3 = create_internship('visagio', 'rio', tags=['tag1', 'tag3', ])

        search = InternshipSearch(self._get('/estagios/?tags=tag9'))
        self.assertEquals(len(search.get_queryset()), 0)

        search = InternshipSearch(self._get('/estagios/?tags=tag1'))
        self.assertEquals(len(search.get_queryset()), 2)


        search = InternshipSearch(self._get('/estagios/?tags=tag3'))
        self.assertEquals(search.get_queryset()[0], i3)