~jfb-tempo-consulting/unifield-wm/sync-env-py3

« back to all changes in this revision

Viewing changes to mkdb.py

  • Committer: jf
  • Date: 2022-02-01 10:24:52 UTC
  • mfrom: (173.1.1 sync-env)
  • Revision ID: jfb@tempo-consulting.fr-20220201102452-rndr3uvmo030kqlf
[MERGE] US-9423: instance registration: do not validate an instance with no group on the sync server

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python
 
1
#!/usr/bin/env python2
2
2
# -*- coding: utf-8 -*-
3
3
"""
4
4
  (C) 2012 OpenERP - All rights reserved
33
33
    # Needed for setUpClass and skipIf methods
34
34
    import unittest27 as unittest
35
35
 
36
 
from datetime import datetime
37
 
from dateutil.relativedelta import relativedelta
38
 
 
39
 
 
40
36
bool_configuration_only = False
41
37
bool_creation_only = False
42
38
master_dir = '/'.join(os.path.realpath(__file__).split('/')[0:-1]+['master_dump'])
85
81
    SELECTION_CHAR='X'
86
82
 
87
83
    users = []
88
 
    with open(filename, 'r') as csvfile:
 
84
    with open(filename, 'rb') as csvfile:
89
85
        reader = csv.reader(csvfile, delimiter=';')
90
86
        header=False
91
87
 
347
343
                        hq_name = self.db and self.db.name and re.findall(r'HQ[0-9]+', self.db.name)
348
344
                        if hq_name and hasattr(config, 'currency_tree'):
349
345
                            data['functional_id'] = config.currency_tree.get(hq_name[-1], config.default_currency)
350
 
                    if model == 'fixed.asset.setup':
351
 
                        data['fixed_asset_ok'] = True
352
346
                    button = data.pop('button', 'action_next')
353
347
                    answer = getattr(self.db.wizard(model, data), button)()
354
348
                model = answer.get('res_model', None)
373
367
        cost_center_id = False
374
368
        top_cost_center_id = False
375
369
        mission_suffix = 'OC'
376
 
        month_12 = (datetime.now() + relativedelta(day=1, months=-12)).strftime('%Y-%m-%d')
377
370
        if mission and mission.db is hq:
378
371
            # coordo
379
372
            mission_suffix = "%02d" % self.index
383
376
                'category' : 'OC',
384
377
                'type' : 'view',
385
378
                'parent_id' : hq.search_data('account.analytic.account', {'Code':'OC'})[0],
386
 
                'date_start': month_12,
387
379
            }
388
380
            top_cost_center_id = hq.get('account.analytic.account').create(top_data)
389
381
            data = {
392
384
                'category' : 'OC',
393
385
                'type' : 'normal',
394
386
                'parent_id' : top_cost_center_id,
395
 
                'date_start': month_12,
 
387
                'date_start': '2013-01-01',
396
388
            }
397
389
            cost_center_id = hq.get('account.analytic.account').create(data)
398
390
        elif self.db is not hq:
405
397
                'category' : 'OC',
406
398
                'type' : 'normal',
407
399
                'parent_id' : parent_cost_center_id,
408
 
                'date_start': month_12,
 
400
                'date_start': '2013-01-01',
409
401
            }
410
402
            top_cost_center_id = hq.get('account.analytic.account').create(data)
411
403
        data = {
533
525
                partner_ids = p_obj.search([('partner_type', 'in', ['section', 'intermission']), ('active', '=', False), ('name', 'not in', exclude_name)])
534
526
                if partner_ids:
535
527
                    p_obj.write(partner_ids, {'active': True})
536
 
                ext_ids = p_obj.search([('partner_type', '=', 'external'), ('active', '=', False)])
537
 
                if ext_ids:
538
 
                    p_obj.write(ext_ids, {'active': True})
539
528
 
540
529
class dump_all(unittest.TestCase):
541
530
 
559
548
                raise self.fail('%s does not exist ! Did you set source_path in config.py ?' % src_path)
560
549
            info[ad] = get_revno_from_path(src_path)
561
550
        f = open(os.path.join(dir_to_dump, 'info.txt'), 'w')
562
 
        for mod, data in list(info.items()):
 
551
        for mod, data in info.items():
563
552
            f.write("%s_url=%s\n" % (mod, data['lpurl']))
564
553
            f.write("%s_revno=%s\n" % (mod, data['revno']))
565
554
        f.close()
637
626
            nb = req.search([])
638
627
            wiz = self.db.get('import_data')
639
628
            f = open(filename, 'rb')
640
 
            rec_id = wiz.create({'object': model, 'file': base64.b64encode(f.read()).decode('utf8')})
 
629
            rec_id = wiz.create({'object': model, 'file': base64.encodestring(f.read())})
641
630
            f.close()
642
631
            wiz.import_csv([rec_id], {})
643
632
            imported = False
645
634
                time.sleep(5)
646
635
                imported = nb != req.search([])
647
636
            return
648
 
        with open(filename, 'r') as csvfile:
 
637
        with open(filename, 'rb') as csvfile:
649
638
            reader = csv.reader(csvfile, delimiter=',')
650
639
            fields = False
651
640
            data = []
700
689
        wiz_data['oc'] = oc
701
690
        wizard = self.db.wizard('sync.client.register_entity', wiz_data)
702
691
        # Fetch instances
 
692
        wizard.next()
703
693
        # Group state
704
694
        wizard.group_state()
705
695
        # Register instance
1021
1011
        if not hasattr(config, 'load_extra_files') or not config.load_extra_files:
1022
1012
            return
1023
1013
 
1024
 
        self.db.connect('admin')
1025
1014
        for filename in config.load_extra_files:
1026
1015
            self.import_csv(get_file_from_source(filename))
1027
1016
 
1032
1021
 
1033
1022
        self.db.connect('admin')
1034
1023
 
1035
 
        f = open(get_file_from_source(config.load_uac_file), 'rb')
1036
 
        data = base64.b64encode(f.read()).decode('utf8')
 
1024
        f = open(get_file_from_source(config.load_uac_file))
 
1025
        data = base64.encodestring(f.read())
1037
1026
        f.close()
1038
1027
 
1039
1028
        wiz = self.db.get('user.access.configurator')
1044
1033
            pass
1045
1034
        user_ids = self.db.get('res.users').search([('id', '!=', 1)])
1046
1035
        if user_ids:
1047
 
            self.db.get('res.users').write(user_ids, {'password': bcrypt.hash(config.admin_password)})
 
1036
            self.db.get('res.users').write(user_ids, {'password': bcrypt.encrypt(config.admin_password)})
1048
1037
 
1049
1038
    def test_70_create_intersection(self):
1050
1039
        partner = self.db.get('res.partner')
1171
1160
class verbose(unittest.TestCase):
1172
1161
    def test_10_show_dbs(self):
1173
1162
        warn("\n"+"-" * 40)
1174
 
        for tc_hq in [tc for tc in test_cases if issubclass(tc, hqn_creation)]:
 
1163
        for tc_hq in filter(lambda tc:issubclass(tc, hqn_creation), test_cases):
1175
1164
            warn( " * %s" % hqn_creation.name_format % tc_hq.getNameFormat())
1176
 
            for tc in [tc for tc in test_cases if issubclass(tc, coordon_creation) \
1177
 
                       and tc.parent is tc_hq]:
 
1165
            for tc in filter(lambda tc:issubclass(tc, coordon_creation) \
 
1166
                             and tc.parent is tc_hq, test_cases):
1178
1167
                warn( "    - %s" % coordon_creation.name_format % tc.getNameFormat())
1179
 
                for tp in [tp for tp in test_cases if issubclass(tp, projectn_creation) \
1180
 
                           and tp.parent is tc]:
 
1168
                for tp in filter(lambda tp:issubclass(tp, projectn_creation) \
 
1169
                                 and tp.parent is tc, test_cases):
1181
1170
                    warn( "        + %s" % projectn_creation.name_format % tp.getNameFormat())
1182
1171
            warn("-" * 40)
1183
1172
 
1196
1185
            for pi in range(1, project_count+1):
1197
1186
                config.instance_tree['HQ%d'%i]['C%d'%ci].append('P%d'%pi)
1198
1187
else:
1199
 
    hq_count = len(list(config.instance_tree.keys()))
1200
 
    coordo_count = max([len(list(x.values())) for x in list(config.instance_tree.values())])
 
1188
    hq_count = len(config.instance_tree.keys())
 
1189
    coordo_count = max([len(x.values()) for x in config.instance_tree.values()])
1201
1190
 
1202
1191
hq_index = 0
1203
 
for hq, coordos in config.instance_tree.items():
 
1192
for hq, coordos in config.instance_tree.iteritems():
1204
1193
    hq_index += 1
1205
1194
    test_cases.append( type("HQ%d_creation" % hq_index, (hqn_creation,unittest.TestCase), {
1206
1195
        'prefix' : 'HQ%s'%hq_index,