Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Errore Forbidden Unicode data

e
edoardo98 (250 points)
2 2 3
in HW2 by (250 points)
Ciao a tutti,

Sto provando a risolvere l’hw2. E ho trovato un modo che apparentemente, testandolo nel main da i valori aspettati per alcuni test. Tuttavia, eseguendo i test dal terminale mi da questo errore anche per i test che danno i valori aspettati:

ForbiddenError The import of unicode data is forbidden

A me sembra un errore come se avessi importato una libreria esterna, cosa che ovviamente non ho fatto.

Suggerimenti su cosa potrebbe essere?
504 views

4 Answers

Exyss (21510 points)
1 2 79
by (21.5k points)
Quando puoi posta l'intero log dell'errore, altrimenti è un po' difficile capire il problema senza sapere dove si verifica
e
edoardo98 (250 points)
2 2 3
by (250 points)

    def test_simple2(self):

        k        = 3

        matches  = ["aaa", "bbb", "ccc", "ddd", "eee"]

        expected = [3, 4, 2, 0, 1]

>       return self.do_test(matches, k, expected)

test_01.py:70:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

test_01.py:31: in do_test

    import program01 as program

testlib.py:46: in _check_import

    return self.__orig_import(*args, **kargs)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = ('unicodedata', {'BuiltinImporter': <class '_frozen_importlib.BuiltinImporter'>, 'FrozenImporter': <class '_frozen_imp...ec': <class '_frozen_importlib.ModuleSpec'>, '_DeadlockError': <class '_frozen_importlib._DeadlockError'>, ...}, [], 0)

kargs = {}, name = 'unicodedata'

rest = [{'BuiltinImporter': <class '_frozen_importlib.BuiltinImporter'>, 'FrozenImporter': <class '_frozen_importlib.FrozenIm...ec': <class '_frozen_importlib.ModuleSpec'>, '_DeadlockError': <class '_frozen_importlib._DeadlockError'>, ...}, [], 0]

    def _check_import(*args, **kargs):

        name, *rest = args

        if name in forbidden or (not forbidden and name not in allowed):

            print(f"Importing {name} (globals, locals, {rest[-2:]}) (not allowed)")

>           raise ForbiddenError(f"The import of '{name}' is forbidden")

E           testlib.ForbiddenError: The import of 'unicodedata' is forbidden

testlib.py:44: ForbiddenError

Mi da questo errore. come detto se provo sul mio ideale a fare lo stesso identico test lo passa

Exyss (21510 points)
1 2 79
by (21.5k points)

Sei sicuro di aver rinonimato il file del programma in program01.py?

Altrimenti, visto che gli errori sono simili, prova con la stessa soluzione proposta in questo thread, ossia prova ad eliminare  la riga

self.check_imports(allowed=['program01','_io']), \

nel file test_01.py alla funzione do_test()

e
edoardo98 (250 points)
2 2 3
by (250 points)
Ok si adesso ho risolto, grazie mille!!
Wahya (7760 points)
1 2 15
by (7.8k points)
Sembra un poblema con l'encoding da qualche parte nel tuo programma.

Hai usato qualche metodo tipo string.encode() o string.decode() ?

Controlla che il file python sia encoded in utf8
e
edoardo98 (250 points)
2 2 3
by (250 points)
Non uso quei metodi, sono su Mac OS quindi non penso che il problema sia l'utf-8 che dovrebbe essere di default. poi comunque nel primo hw facoltativo non mi ha dato nessun problema
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Questo tipo di errori nasce quando pytest cerca di caricare una libreria necessaria a stampare un errore.

Disattivate i controlli per capire se andate in timeout o se date un output errato
1
1872217 (290 points)
3 6 7
by (290 points)
Professore io ho eliminato la riga come suggerito dai threads precedenti e funziona, va bene?
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Vedi come va sulla vm
1
1872217 (290 points)
3 6 7
by (290 points)
Nella vm ho superato tutti i test correttamente!
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)

ottimo! cool               .

a.manieri (410 points)
0 0 3
by (410 points)
Ciao Edoardo,

Controlla di non aver utilizzato caratteri accentati (o particolari) nel codice