«

»

Sep 27

Bara en kvar nu!

Ännu igen har jag hunnit skriva alldeles för lite och jobbat alldeles för mycket, så detta inlägg blir förmodligen en aning långt.

Trots att vi inte färdigställt alla funktionerna har vi börjat testa de vi gjort med testfilen data_test.py. När vi började med detta insåg vi att det var en hel del saker som vi missat, till och med i init funktionen  insåg vi att allt inte stod rätt till. Det vi hade glömt var att en del fält fick fel datatyp när informationen om projekten konverterades till unicodesträngar. Vi löste detta genom att i två for-satser, en för integers och en för listor, konvertera elementen till den datatyp de skulle ha. I for-satsen för att göra om ‘techniques_used’ till en lista var vi också tvungna att sortera i alfabetisk ordning. Eftersom elementen i listan var unicodesträngar behövde vi med hjälp av modulen locale specificera att vi ville sortera efter ett svenskt alfabet.

Vidare har vi jobbat med en funtion, retrieve_projects(), som tillåter en mängd argument och gör sedan en sökning i databasen efter dessa. För att göra det lättare för oss delade vi upp denna funktion i delar. Den första delen är en if-sats som körs om det kan hittas ett värde på argumentet techniques, argumentet ges som en lista som sedan matchas mot projekt i databasen och lägger till de projekt som har den eller de givna teknikerna i en lista kallad tech_list. Ges inget argument i techniques skickas alla projekt in i tech_list.

Listan tech_list används sedan i nästa del av funktionen, men denna del inleds med en if-sats som kollar om användaren matat in värden på search och search_fields. Därefter görs en sökning efter search i  search_fields i tech_list. Lite längre ner i funktionen finns även satser som kontrollerar hur de projekt sökningen ger returneras, alltså i vilken ordning och så vidare.

Det finns också ett par rader som gör att sökningen inte är case sensitive.

Den sista funktionen jag har att skriva om är retrieve_techniques(). Denna funktion var enkel, det den gör är att den iterer genom techniques_used och lägger till alla tekniker i en lista. Uppstår ett tillfälle då den försöka lägga till en teknik i listan som redan finns där hoppas detta över och fortsätter sedan med nästa.  När alla projekt gåtts igenom sorteras listan i alfabetisk ordning och returneras sedan tillsammans med en felkod i en tupel.

Allt vi gjort hittills klarar nu av data_test.py