def test_token_is_invalid(self, visitor: Visitor) -> None: visitor.deactivate() request = self.request(visitor.tokenise("/")) middleware = VisitorRequestMiddleware(lambda r: r) middleware(request) assert not request.user.is_visitor assert not request.visitor
def setUp(self): self.client = Client() data = [] for i in range(500): m = Visitor(full_name="Romulo", id=i, date=datetime.date(2015, 1, 1)) data.append(m) Visitor.objects.bulk_create(data) # another query to update full_search explicitly since # bulk_create does not invoke the save method Visitor.objects.update(full_search=Visitor.get_full_search_vector()) # build index with our test data self.maxDiff = None
def setUp(self): self.client = Client() data = [] for i in range(500): m = Visitor(full_name='Romulo', id=i, date=datetime.date(2015, 1, 1)) data.append(m) Visitor.objects.bulk_create(data) # build index with our test data haystack.connections.reload('default') call_command('rebuild_index', interactive=False, verbosity=0) super(TestAPI, self).setUp() self.maxDiff = None
def test_validate(is_active, expires_at, is_valid): visitor = Visitor(is_active=is_active, expires_at=expires_at) assert visitor.is_active == is_active assert visitor.has_expired == bool(expires_at < TODAY) if is_valid: visitor.validate() return with pytest.raises(InvalidVisitorPass): visitor.validate()
def test_pagination(self): data = [] for i in range(500): m = Visitor(full_name='Romulo', id=i) data.append(m) Visitor.objects.bulk_create(data) # build index with our test data haystack.connections.reload('default') call_command('rebuild_index', interactive=False, verbosity=0) super(TestViews, self).setUp() c = self.client.get('/search/?q=romulo') expected = 'q=romulo&page=25' self.assertTrue(expected in str(c.content))
def do_import(filename): visitors = [] hashes = [] with open(filename, "r") as csvfile: reader = csv.DictReader(csvfile) for row in reader: date_str = get_visit_date_str(row) time_start = get_time_start(row) time_end = get_time_end(row) id_document = get_id_document(row) item = { "institution": "perucompras", "full_name": row["nombre_visita"], "id_document": "dni", "id_number": row["documento"], "date": date_str, "time_start": time_start, "time_end": time_end, } item = make_hash(item) hash_str = item["sha1"] if hash_str in hashes: continue queryset = Visitor.objects.filter(sha1=hash_str) if not queryset: host_title = row.get("cargo_contacto", "") hashes.append(hash_str) visitors.append( Visitor( date=date_str, institution="perucompras", sha1=hash_str, full_name=item["full_name"], entity=row["empresa"], office=row["area"], id_document=id_document, id_number=item["id_number"], reason=row["motivo"], host_name=row["contacto"], time_start=time_start, time_end=time_end, host_title=host_title, )) Visitor.objects.bulk_create(visitors) print("creating {} visitors".format(len(visitors)))
def test_defaults(): visitor = Visitor() assert visitor.created_at assert visitor.expires_at == visitor.created_at + Visitor.DEFAULT_TOKEN_EXPIRY
def test_is_valid(is_active, expires_at, is_valid): visitor = Visitor(is_active=is_active, expires_at=expires_at) assert visitor.is_valid == is_valid
def test_visitor_tokenise(url_in, url_out): visitor = Visitor(uuid=uuid.UUID(TEST_UUID)) assert visitor.tokenise(url_in) == url_out
def test_has_expired(expires_at, has_expired): visitor = Visitor() visitor.expires_at = expires_at assert visitor.has_expired == has_expired
def test_valid_token(self, visitor: Visitor) -> None: request = self.request(visitor.tokenise("/")) middleware = VisitorRequestMiddleware(lambda r: r) middleware(request) assert request.user.is_visitor assert request.visitor == visitor