~coreygoldberg/+junk/sst-rename

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env python


import os
import sys


NAME_MAP = {
    'alert_accept': 'accept_alert',
    'alert_dismiss': 'dismiss_alert',
    'button_click': 'click_button',
    'checkbox_set': 'set_checkbox_value',
    'checkbox_toggle': 'toggle_checkbox',
    'checkbox_value_is': 'assert_checkbox_value',
    'element_click': 'click_element',
    'goto': 'go_to',
    'is_button': 'assert_button',
    'is_checkbox': 'assert_checkbox',
    'is_displayed': 'assert_displayed',
    'is_link': 'assert_link',
    'is_radio': 'assert_radio',
    'is_select': 'assert_dropdown',
    'is_textfield': 'assert_textfield',
    'link_click': 'click_link',
    'radio_select': 'set_radio_value',
    'radio_value_is': 'assert_radio_value',
    'select_value_is': 'assert_dropdown_value',
    'set_select': 'set_dropdown_value',
    'text_contains': 'assert_text_contains',
    'text_is': 'assert_text',
    'textfield_write': 'write_textfield',
    'title_contains': 'assert_title_contains',
    'title_is': 'assert_title',
    'url_contains': 'assert_url_contains',
    'url_is': 'assert_url',
    'waitfor': 'wait_for',
    'window_close': 'close_window',
}



def main():
    if len(sys.argv) < 2:
        print 'Usage: "python %s <directory_to_convert>"' % __file__
        sys.exit()        
    conversion_dir = sys.argv[1]
    if not os.path.isdir(conversion_dir):
        print 'Sorry, %r is not a directory I can process.' % conversion_dir
        sys.exit()
        
    for root, _, files in os.walk(conversion_dir):
        if '.bzr' not in root:
            for file in files:
                if file.endswith(('.py', '.rst', '.txt', 'README')):
                    file_to_convert = os.path.join(root, file)
                    replace_names(file_to_convert)
                    

def replace_names(file_to_convert):
    print 'opening %r for name conversion...' % file_to_convert
    with open(file_to_convert, 'rb') as f:
        content = f.read()
    for old_name, new_name in NAME_MAP.items():
        replacements = {
             '%s ' % old_name: '%s ' % new_name,
             '%s(' % old_name: '%s(' % new_name,
             '%s)' % old_name: '%s)' % new_name,
             '%s,' % old_name: '%s,' % new_name,
             '%s:' % old_name: '%s:' % new_name,
             '%s}' % old_name: '%s}' % new_name,
             '%s`' % old_name: '%s`' % new_name,
             '%s"' % old_name: '%s"' % new_name,
             "%s'" % old_name: "%s'" % new_name,
        }
        for old_replacement, new_replacement in replacements.items():
            if old_replacement in content:
                print '    converting: %s -> %s' % (old_replacement, new_replacement)
                content = content.replace(old_replacement, new_replacement)
    with open(file_to_convert, 'wb') as f:
        print 'writing new %r\n' % file_to_convert
        f.write(content)



if __name__ == '__main__':
    main()