Пример #1
0
class ManifestTestCase(unittest.TestCase):
    def setUp(self):
        self.manifest_loader = ManifestLoader(manifests={'djangofixture':DjangoFixtureManifest,
                                                         'dockitfixture':DockitFixtureManifest,},
                                              data_sources={'inline':InlineDataSource})
    
    def test_load_dockitfixture_manifest(self):
        data = {'loader':'dockitfixture',
                'data':[{'source':'inline',
                         'data':[{
                             "model":"dockit.temporarydocument",
                             "pk": 1,
                             "natural_key": {"pk":1},
                             "fields": {
                                 "_tempinfo": {
                                    "user": None,
                                 },
                                 "extrafield": 1,
                             }
                         }],
                       }]
               }
        manifest = self.manifest_loader.load_manifest(data)
        objects = manifest.load()
        self.assertEqual(len(objects), 1)
        self.assertEqual(objects[0].object['extrafield'], 1)
    
    def test_load_djangofixture_manifest(self):
        data = {'loader':'djangofixture',
                'data':[{'source':'inline',
                         'data':[{
                             "model": "auth.user",
                             "pk": 1,
                             "fields": {
                                 "username": "******",
                                 "first_name": "John",
                                 "last_name": "Lennon",
                                 "email": "*****@*****.**",
                             }
                          }],
                       }]
               }
        manifest = self.manifest_loader.load_manifest(data)
        objects = manifest.load()
        self.assertEqual(len(objects), 1)
        self.assertEqual(objects[0].object.username, 'fixtureuser')
    
    def test_create_dockitfixture_manifest(self):
        from dockit.models import TemporaryDocument
        foo = TemporaryDocument(extrafield=1)
        data_sources = [(InlineDataSource, [foo], {})]
        payload = self.manifest_loader.create_manifest_payload('dockitfixture', data_sources)
        self.assertEqual(len(payload['data']), 1)
Пример #2
0
 def setUp(self):
     self.manifest_loader = ManifestLoader(manifests={'dockitcmsfixture':DockitCMSFixtureManifest,},
                                           data_sources={'inline':InlineDataSource})
     self.fixtures = ManifestFixtures()
Пример #3
0
class ManifestTestCase(unittest.TestCase):
    def setUp(self):
        self.manifest_loader = ManifestLoader(manifests={'dockitcmsfixture':DockitCMSFixtureManifest,},
                                              data_sources={'inline':InlineDataSource})
        self.fixtures = ManifestFixtures()
    
    def get_fixture_data(self):
        data = {'loader':'dockitcmsfixture',
                'references': {
                   'applications': ['app1'], #defines app references by natural keys
                   'subsites': ['subsite1'], #includes referenced subsites
                   #CONSIDER: indexes do not have natural keys, but is not needed as we can look for functional equivalence
                   #a special loader can read this info and offer the user to define their own mappings
                },
                'documentdesign': [],#data sources],
                'collections': wrap_inline_fixture(self.fixtures.collection_fixture()),
                'collection_data': {},#self.fixtures.collection_data_fixture(),
                'indexes': wrap_inline_fixture(self.fixtures.index_fixture()),
                'viewpoints': wrap_inline_fixture(self.fixtures.viewpoint_fixture()),
                'subsites': wrap_inline_fixture(self.fixtures.subsite_fixture()),
                'applications': wrap_inline_fixture(self.fixtures.application_fixture()),
               }
        return data
    
    def test_load_dockitcmsfixture_manifest(self):
        data = self.get_fixture_data()
        
        manifest = self.manifest_loader.load_manifest(data)
        objects = manifest.load()
        self.assertEqual(len(objects), 6)
    
    def test_load_dockitcmsfixture_manifest_with_rename_collection(self):
        data = self.get_fixture_data()
        
        dev_subsite = Subsite(url='/dev/',
                              name='Dev Site',
                              sites=[Site.objects.get_current()],
                              mixins=["widgetblock.widgets"],)
        dev_subsite.save()
        
        rename_collections = {
            'team': 'dev.team',
        }
        
        #TODO existing object map is awkward
        existing_object_map = {
            "dockitcms.subsite": [
               ({"name": "Root",}, dev_subsite),
            ]
        }
        
        manifest = self.manifest_loader.load_manifest(data)
        objects = manifest.load(rename_collections=rename_collections, existing_object_map=existing_object_map)
        self.assertEqual(len(objects), 6)
        
        #TODO assert data was coppied over
        
        vp_found = False
        cl_found = False
        for obj in objects:
            if isinstance(obj, BaseViewPoint):
                self.assertEqual(obj.subsite, dev_subsite)
                vp_found = True
            if isinstance(obj, BaseCollection):
                self.assertEqual(obj.key, 'dev.team')
                cl_found = True
        assert vp_found
        assert cl_found
    
    def test_create_dockitcmsfixture_manifest(self):
        dev_subsite = Subsite(url='/dev/',
                              name='Dev Site',
                              sites=[Site.objects.get_current()],
                              mixins=["widgetblock.widgets"],)
        dev_subsite.save()
        data_sources = [(InlineDataSource, [dev_subsite], {})]
        payload = self.manifest_loader.create_manifest_payload('dockitcmsfixture', data_sources)
        self.assertTrue('subsites' in payload)
        self.assertEqual(len(payload['subsites']), 1)
        self.assertEqual(len(payload['subsites'][0]['data']), 1)
Пример #4
0
 def setUp(self):
     self.manifest_loader = ManifestLoader(manifests={'djangofixture':DjangoFixtureManifest,
                                                      'dockitfixture':DockitFixtureManifest,},
                                           data_sources={'inline':InlineDataSource})