def handle(self, *args, **options): dataFilesPath = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'data', options['name'])) #dataFileList = [x for x in os.listdir(dataFilePath) if os.path.isfile(os.path.join(dataFilePath, x))] if not os.path.isdir(dataFilesPath): self.stdout.write(self.style.WARNING('Data path doesn\'t exist: {}'.format(dataFilesPath))) return Language.createDefaultLanguages() modelClassObjectList = [Context, ContentType, Content, Item, Address, Contact, Email, Phone, SocialMedia, Conversion, FAQ, Newsletter, PrivacyNotice, ProjectSettings, SimpleAPIAccount, TermsOfUse, Testimonial ] for modelClassObject in modelClassObjectList: dataFileName = '{}.json'.format(modelClassObject.__name__) dataFilePath = os.path.join(dataFilesPath, dataFileName) if not os.path.isfile(dataFilePath): self.stdout.write(self.style.WARNING('Data file doesn\'t exist: {}'.format(dataFilePath))) continue _dataFile = open(dataFilePath, 'r') dataList = json.loads(_dataFile.read()) _dataFile.close() for dataObject in dataList: if 'context' in dataObject and dataObject['context']: dataObject['context'] = Context.objects.filter(domain=dataObject['context'])[0] if 'language' in dataObject and dataObject['language']: dataObject['language'] = Language.objects.filter(code=dataObject['language'])[0] if 'content_type' in dataObject and dataObject['content_type']: dataObject['content_type'] = ContentType.objects.filter(code=dataObject['content_type'])[0] modelInstance, created = modelClassObject.objects.get_or_create(**dataObject) self.stdout.write(self.style.SUCCESS('Data created: {}'.format(modelClassObject.__name__))) self.stdout.write(self.style.SUCCESS('Demo data has been created.'))
def test_language_list(self): """ Ensure we can retrieve newly created language objects. """ poly = GEOSGeometry(self.FAKE_GEOM) test_language = Language(name="Test language 001") test_language.geom = poly test_language.save() response = self.client.get("/api/language/", format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1)
def test_language_detail(self): """ Ensure we can retrieve a newly created language object. """ poly = GEOSGeometry(self.FAKE_GEOM) test_language = Language(name="Test language 001") test_language.geom = poly test_language.language_audio = self.recording1 test_language.greeting_audio = self.recording2 test_language.save() response = self.client.get("/api/language/{}/".format( test_language.id), format="json") # import pdb # pdb.set_trace() self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["id"], test_language.id) self.assertEqual(response.data["name"], "Test language 001") self.assertEqual(response.data["language_audio"]["speaker"], self.recording1.speaker) self.assertEqual(response.data["language_audio"]["recorder"], self.recording1.recorder)
def setDefaultLanguage(self, defaultLanguageCode=LANGUAGE_CODE): languageInstance = Language.getDefaultLanguageModelInstance( defaultLanguageCode) if languageInstance: self.language = languageInstance self.save() return True return False
def test_language_add_greeting_audio(self): """ Ensure we can add a greeting audio to a language object. """ # Must be logged in self.assertTrue( self.client.login(username="******", password="******")) # Check we're logged in response = self.client.get("/api/user/auth/") self.assertEqual(response.json()["is_authenticated"], True) poly = GEOSGeometry(self.FAKE_GEOM) test_language = Language(name="Test greeting audio") test_language.geom = poly test_language.save() response = self.client.patch( "/api/language/{}/add_greeting_audio/".format(test_language.id), {"recording_id": self.recording2.id}, format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) response = self.client.get("/api/language/{}/".format( test_language.id), format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["id"], test_language.id) self.assertEqual(response.data["name"], "Test greeting audio") self.assertEqual(response.data["greeting_audio"]["id"], self.recording2.id) self.assertEqual(response.data["greeting_audio"]["speaker"], self.recording2.speaker)
def _create_languages(self): bavarian = Language(name='BAR', default_variant='bv_DA') bavarian.save() english = Language(name='ENG', default_variant='en_US') english.save() spanish = Language(name='SPA', default_variant='es_ES') spanish.save() WordVersion(name='Boariš 2018', link='https://en.wikipedia.org/wiki/Bavarian_language', language=bavarian) WordVersion(name='American English', link='https://en.wikipedia.org/wiki/American_English', language=english) WordVersion(name='Spanish', link='https://en.wikipedia.org/wiki/Spanish_language', language=spanish)
def getOrCreateContextAndLanguageObjects(): return Context.createDefaultContext(), Language.createDefaultLanguages()[0]