示例#1
0
 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
示例#2
0
    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
示例#3
0
    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
示例#4
0
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()
示例#5
0
    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&amp;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)))
示例#7
0
def test_defaults():
    visitor = Visitor()
    assert visitor.created_at
    assert visitor.expires_at == visitor.created_at + Visitor.DEFAULT_TOKEN_EXPIRY
示例#8
0
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
示例#9
0
def test_visitor_tokenise(url_in, url_out):
    visitor = Visitor(uuid=uuid.UUID(TEST_UUID))
    assert visitor.tokenise(url_in) == url_out
示例#10
0
def test_has_expired(expires_at, has_expired):
    visitor = Visitor()
    visitor.expires_at = expires_at
    assert visitor.has_expired == has_expired
示例#11
0
 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