blob: d719c93452499c5b1211f3792b21c5fee180deef [file] [log] [blame]
// Copyright 2018 The Tulsi Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import XCTest
@testable import TulsiGenerator
class PythonableTests: XCTestCase {
func testStringSimple() {
XCTAssertEqual("foobar".toPython(""), "'foobar'")
XCTAssertEqual("foobar".toPython(" "), "'foobar'")
XCTAssertEqual("this is a string".toPython(""), "'this is a string'")
}
func testStringEscapesSingleQuotes() {
XCTAssertEqual("foo'bar".toPython(""), "'foo\\'bar'")
XCTAssertEqual("foo'bar".toPython(" "), "'foo\\'bar'")
XCTAssertEqual("this''string".toPython(""), "'this\\'\\'string'")
}
func testArrayEmpty() {
XCTAssertEqual([String]().toPython(""), "[]")
}
func testArrayOfStrings() {
let arr = [
"Hello",
"Goodbye",
"'Escape'",
]
XCTAssertEqual(arr.toPython(""), """
[
'Hello',
'Goodbye',
'\\'Escape\\'',
]
""")
XCTAssertEqual(
arr.toPython(" "), """
[
'Hello',
'Goodbye',
'\\'Escape\\'',
]
""")
}
func testSetEmpty() {
XCTAssertEqual(Set<String>().toPython(""), "set()")
}
func testStringSet() {
let set: Set<String> = ["Hello"]
XCTAssertEqual(set.toPython(""), """
set([
'Hello',
])
""")
XCTAssertEqual(set.toPython(" "), """
set([
'Hello',
])
""")
}
func testDictionaryEmpty() {
XCTAssertEqual([String: String]().toPython(""), "{}")
}
func testStringDictionary() {
let dict = ["Type": "A"]
XCTAssertEqual(dict.toPython(""), """
{
'Type': 'A',
}
""")
XCTAssertEqual(dict.toPython(" "), """
{
'Type': 'A',
}
""")
}
}