import unittest, os, boto3 def read_line_from_md(path_to_md: str, line_number: int) -> str: md = open(path_to_md, "r") all_lines = md.readlines(False) return all_lines[line_number - 1].strip("\n") class FullTest(unittest.TestCase): @classmethod def setUpClass(cls): """ Setup for all tests. """ # Get the default AWS session with default (un-named) profile. session = boto3.Session(region_name="us-west-2") s3_client = session.client("s3") response = s3_client.list_buckets() [b["Name"] for b in response["Buckets"]] if not "tidb-diagram-v2" in [b["Name"] for b in response["Buckets"]]: print( "S3 bucket 'tidb-diagram-v2' is NOT in the list:", [b["Name"] for b in response["Buckets"]], ) print( ">>> Please go to https://pingcap.awsapps.com/start#/ to setup up a correct credentials for your terminal session." ) exit(-1) @classmethod def tearDownClass(cls): """ Destroy any resources aftet all tests. """ None def setUp(self): """ Setup for each test. """ None def tearDown(self): """ Destroy any resource after each test. """ None # def test_gen_chapter_by_ch_lang_en(self): # # Smoking test for gen_chapter_by_ch_lang.sh # cmd0 = """rm -f ./stage/chapter-01-en.pptx &&\ # gen-chapter-by-ch-lang.sh 01 en silent &&\ # ls -l ./stage/chapter-01-en.pptx 1>>/dev/null 2>&1""" # cmd0_ret = os.system(cmd0) # self.assertEqual(0, cmd0_ret) # cmd1 = """rm -rf ./stage/chapter-test-en/ &&\ # gen-chapter-by-ch-lang.sh test en silent &&\ # flash-inspect-ppt.sh ./stage/chapter-test-en.pptx ./stage/chapter-test-en/ silent""" # cmd1_ret = os.system(cmd1) # self.assertEqual(0, cmd1_ret) # self.assertEqual( # "# Install Flash Install Flash and Prepared Statement", # read_line_from_md("./stage/chapter-test-en/1.md", 1), # ) # self.assertEqual( # "# TiDB Server", # read_line_from_md("./stage/chapter-test-en/2.md", 1), # ) # self.assertEqual( # "+ 201.3: TiDB Specific Features and Transaction Control", # read_line_from_md("./stage/chapter-test-en/2.md", 6), # ) # self.assertEqual( # "+ Add and replace data in a table using the INSERT and REPLACE statements", # read_line_from_md("./stage/chapter-test-en/2.md", 7), # ) # self.assertEqual( # "+ Welcome to hello world", # read_line_from_md("./stage/chapter-test-en/3.md", 3), # ) # self.assertEqual( # "# PingCAP and TiDB TiDB TiDB TiDB TiDB TiDB", # read_line_from_md("./stage/chapter-test-en/4.md", 1), # ) # self.assertEqual( # "![`center`](./student-guide/diagram/place-holder.png)", # read_line_from_md("./stage/chapter-test-en/6.md", 19), # ) # self.assertEqual( # "# TiDB without Flash", # read_line_from_md("./stage/chapter-test-en/8.md", 1), # ) # def test_gen_chapter_by_ch_lang_zh(self): # cmd1 = """rm -rf ./stage/chapter-test-zh/ &&\ # gen-chapter-by-ch-lang.sh test zh silent &&\ # flash-inspect-ppt.sh ./stage/chapter-test-zh.pptx ./stage/chapter-test-zh/ silent""" # cmd1_ret = os.system(cmd1) # self.assertEqual(0, cmd1_ret) # self.assertEqual( # "# 安装 Flash", read_line_from_md("./stage/chapter-test-zh/1.md", 1) # ) # self.assertEqual( # "# TiDB-server TiDB-server", # read_line_from_md("./stage/chapter-test-zh/2.md", 1), # ) # self.assertEqual( # "+ 中文和 English 之间的 space 是必要的", # read_line_from_md("./stage/chapter-test-zh/3.md", 3), # ) # self.assertEqual( # "+ 中文和 English 之间的 space 是必要的", # read_line_from_md("./stage/chapter-test-zh/3.md", 4), # ) # self.assertEqual( # "# TiDB TiDB TiDB TiDB", # read_line_from_md("./stage/chapter-test-zh/4.md", 1), # ) def test_gen_md_en2zh(self): cmd1 = """rm -rf ./stage/en2zh/chapter-test &&\ gen-md-en2zh-by-ch.sh test 0 silent &&\ ls -l ./stage/en2zh/chapter-test/ >>/dev/null""" cmd1_ret = os.system(cmd1) self.assertEqual(0, cmd1_ret) self.assertEqual( "# 安装 Flash 安装 `Flash` 和预编译语句", read_line_from_md("./stage/en2zh/chapter-test/01title.md", 1), ) self.assertEqual( "__*安装 Flash 安装 `Flash`*__", read_line_from_md("./stage/en2zh/chapter-test/01title.md", 2), ) self.assertEqual( "# TiDB 服务器", read_line_from_md("./stage/en2zh/chapter-test/02.md", 1), ) self.assertEqual( "+ 你好,这是用逗号进行测试", read_line_from_md("./stage/en2zh/chapter-test/02.md", 2), ) self.assertEqual( "+ `TiDB server`", read_line_from_md("./stage/en2zh/chapter-test/02.md", 3), ) self.assertEqual( "+ **TiDB 服务器**", read_line_from_md("./stage/en2zh/chapter-test/02.md", 4), ) self.assertEqual( "+ 欢迎来到你好世界", read_line_from_md("./stage/en2zh/chapter-test/03.md", 5), ) self.assertEqual( "# `PingCAP` 和 `TiDB` TiDB TiDB TiDB TiDB TiDB", read_line_from_md("./stage/en2zh/chapter-test/04.md", 1), ) self.assertEqual( "+ PingCAP", read_line_from_md("./stage/en2zh/chapter-test/04.md", 2), ) self.assertEqual( "+ `pingcap`", read_line_from_md("./stage/en2zh/chapter-test/04.md", 3), ) self.assertEqual( "+ `pingcap.com`", read_line_from_md("./stage/en2zh/chapter-test/04.md", 4), ) self.assertEqual( "+ 欢迎来到 PingCAP", read_line_from_md("./stage/en2zh/chapter-test/04.md", 5), ) self.assertEqual( "# `Flash GitHub Repository`", read_line_from_md("./stage/en2zh/chapter-test/05.md", 1), ) self.assertEqual( "+ `URL`: `https://github.com/pingcap-inc/pingcap.pe.flash`", read_line_from_md("./stage/en2zh/chapter-test/05.md", 2), ) self.assertEqual( "+ 加入 `github` 组织 `pingcap-inc` 获得访问权限", read_line_from_md("./stage/en2zh/chapter-test/05.md", 3), ) self.assertEqual( "```13", read_line_from_md("./stage/en2zh/chapter-test/05.md", 5), ) self.assertEqual( "$ git clone https://github.com/~!@pingcap-inc/pingcap.pe.flash.git@!~", read_line_from_md("./stage/en2zh/chapter-test/05.md", 6), ) self.assertEqual( "```", read_line_from_md("./stage/en2zh/chapter-test/05.md", 7), ) self.assertEqual( "| 列 | **列** | `column` |", read_line_from_md("./stage/en2zh/chapter-test/05.md", 9), ) self.assertEqual( "| :------ | :--------- | :---------- |", read_line_from_md("./stage/en2zh/chapter-test/05.md", 10), ) self.assertEqual( "| 值 1 | 值 2 | 值 3 |", read_line_from_md("./stage/en2zh/chapter-test/05.md", 11), ) self.assertEqual( "| 值 4 | `Value` 5 | **值** 6 |", read_line_from_md("./stage/en2zh/chapter-test/05.md", 12), ) self.assertEqual( "# 示意图示例", read_line_from_md("./stage/en2zh/chapter-test/06.md", 1), ) self.assertEqual( "![`right`](./student-guide/diagram/example/pic_example.jpeg)", read_line_from_md("./stage/en2zh/chapter-test/06.md", 4), ) def test_gen_md_en2ja(self): cmd1 = """rm -rf ./stage/en2ja/chapter-test &&\ gen-md-en2ja-by-ch.sh test 0 silent &&\ ls -l ./stage/en2ja/chapter-test/ >>/dev/null""" cmd1_ret = os.system(cmd1) self.assertEqual(0, cmd1_ret) self.assertEqual( "# フラッシュのインストール `Flash` とプリペアドステートメントインストール", read_line_from_md("./stage/en2ja/chapter-test/01title.md", 1), ) self.assertEqual( "__*フラッシュのインストール `Flash` のインストール*__", read_line_from_md("./stage/en2ja/chapter-test/01title.md", 2), ) self.assertEqual( "# `PingCAP` と `TiDB` TiDB TiDB TiDB TiDB TiDB", read_line_from_md("./stage/en2ja/chapter-test/04.md", 1), ) self.assertEqual( "+ PingCAP", read_line_from_md("./stage/en2ja/chapter-test/04.md", 2), ) self.assertEqual( "+ `pingcap`", read_line_from_md("./stage/en2ja/chapter-test/04.md", 3), ) self.assertEqual( "+ `pingcap.com`", read_line_from_md("./stage/en2ja/chapter-test/04.md", 4), ) self.assertEqual( "+ PingCAP へようこそ", read_line_from_md("./stage/en2ja/chapter-test/04.md", 5), ) self.assertEqual( "# `Flash GitHub Repository`", read_line_from_md("./stage/en2ja/chapter-test/05.md", 1), ) self.assertEqual( "+ `URL`: `https://github.com/pingcap-inc/pingcap.pe.flash`", read_line_from_md("./stage/en2ja/chapter-test/05.md", 2), ) self.assertEqual( "+ `github`組織`pingcap-inc`に参加してアクセスしよう", read_line_from_md("./stage/en2ja/chapter-test/05.md", 3), ) self.assertEqual( "```13", read_line_from_md("./stage/en2ja/chapter-test/05.md", 5), ) self.assertEqual( "$ git clone https://github.com/~!@pingcap-inc/pingcap.pe.flash.git@!~", read_line_from_md("./stage/en2ja/chapter-test/05.md", 6), ) self.assertEqual( "```", read_line_from_md("./stage/en2ja/chapter-test/05.md", 7), ) self.assertEqual( "![`right`](./student-guide/diagram/example/pic_example.jpeg)", read_line_from_md("./stage/en2ja/chapter-test/06.md", 4), ) self.assertEqual( "# `TEST`", read_line_from_md("./stage/en2ja/chapter-test/07.md", 1), ) if __name__ == "__main__": unittest.main(warnings="ignore")