def find_google_id(google_id): """ Return the model matching the google_id, dowload it if needed. """ try: return SketchupModel.objects.get(google_id=google_id) except SketchupModel.DoesNotExist: from warehouse_scrapper.models import retreive_model model = retreive_model(google_id) if model is None: raise SketchupModel.DoesNotExist("google id : %s" % google_id) else: return model
def test_session_can_store_big_identifier(self): """ Test that a session can contain a large identifier. """ from .models import EvaluationSession from warehouse_scrapper.models import (search_by_keywords, retreive_model) session = EvaluationSession() categories = ['dinner plate', 'toothbrush', 'apple fruit', 'soda can'] for category in categories: models = [retreive_model(id) for id in search_by_keywords(category)] models = [model for model in models if model is not None] session.identifier.add_models(models, category) session.identifier.train() import sys import pickle serialized_size = sys.getsizeof(pickle.dumps(session.identifier)) print "Size needed: ", serialized_size, " bytes." self.assertTrue(serialized_size > 16 * 1024 * 1024) # 16 Mo session.save()
def test_download_one_model(self): """" Test that a model is correctly download from the database. Link to the test model : https://3dwarehouse.sketchup.com/model.html?id=9fc96d41ec7a66a6a159545213d74ea """ model_id = "9fc96d41ec7a66a6a159545213d74ea" model = retreive_model(model_id) self.assertEqual(model.google_id, model_id) self.assertEqual(model.title, "Mug") self.assertEqual(model.text, "coffee mug or cup") tags = ["coffee", "coffee mug", "cup", "drink", "glass", "liquid", "mug"] self.assertEqual(model.tags, tags) # test the image and the mesh file from fixture tri_file = file("sketchup_models/fixtures/%s.tri" % model_id).read() img_file = file("sketchup_models/fixtures/%s.jpg" % model_id).read() self.assertEqual(model.mesh, tri_file) self.assertEqual(model.image, img_file)