community.mysql/tests/integration/mysql_db/tasks/encoding_dump_import.yml
2020-07-09 20:39:26 +01:00

78 lines
2.1 KiB
YAML

---
- set_fact:
latin1_file1="{{tmp_dir}}/{{file}}"
- name: Deleting Latin1 encoded Database
mysql_db:
name: '{{ db_latin1_name }}'
state: absent
login_unix_socket: '{{ mysql_socket }}'
- name: create Latin1 encoded database
mysql_db:
name: '{{ db_latin1_name }}'
state: present
encoding: latin1
login_unix_socket: '{{ mysql_socket }}'
- name: create a table in Latin1 database
command: mysql {{ db_latin1_name }} -e 'create table testlatin1(id int, name varchar(100));'
# Inserting a string in latin1 into table, , this string be tested later,
# so report any change of content in the test too
- name: inserting data into Latin1 database
command: mysql {{ db_latin1_name }} -e "insert into testlatin1 value(47,'Amédée Bôlüt');"
- name: selecting table
command: mysql {{ db_latin1_name }} -e "select * from testlatin1;"
register: output
- name: Dumping a table in Latin1 database
mysql_db:
name: "{{ db_latin1_name }}"
encoding: latin1
target: "{{ latin1_file1 }}"
state: dump
login_unix_socket: '{{ mysql_socket }}'
register: dump_result
- assert:
that:
- result is changed
- name: state dump - file name should exist
file: name={{ latin1_file1 }} state=file
- name: od the file and check of latin1 encoded string is present
shell: grep -a 47 {{ latin1_file1 }} | od -c |grep "A m 351 d 351 e B 364\|A m 303 251 d 303 251 e B 303"
- name: Dropping {{ db_latin1_name }} database
mysql_db:
name: '{{ db_latin1_name }}'
state: absent
login_unix_socket: '{{ mysql_socket }}'
- name: Importing the latin1 mysql script
mysql_db:
state: import
encoding: latin1
name: '{{ db_latin1_name }}'
target: "{{ latin1_file1 }}"
login_unix_socket: '{{ mysql_socket }}'
- assert:
that:
- result is changed
- name: check encoding of table
shell: mysql {{ db_latin1_name }} -e "SHOW FULL COLUMNS FROM testlatin1;"
register: output
failed_when: '"latin1_swedish_ci" not in output.stdout'
- name: remove database
mysql_db:
name: '{{ db_latin1_name }}'
state: absent
login_unix_socket: '{{ mysql_socket }}'