YAML

A

aidy

Hi,

All I want it to read this YAML as a ruby hash and place into the
below methods. Could someone help?



test: tiscali
url: http://tiscali3-test.vizumi.com/
register:
first_name: aidy
surname: smith
email: '(e-mail address removed)'
password: password
registration: KJHDF123




tiscali= SmokeTest.new("Tiscali", "http://tiscali3-test.vizumi.com/")
tiscali.register('aidy', 'smith, '(e-mail address removed)',
'password', 'KJHDF123')


Aidy
 
G

Gregory Seidman

All I want it to read this YAML as a ruby hash and place into the
below methods. Could someone help?

test: tiscali
url: http://tiscali3-test.vizumi.com/
register:
first_name: aidy
surname: smith
email: '(e-mail address removed)'
password: password
registration: KJHDF123

tiscali= SmokeTest.new("Tiscali", "http://tiscali3-test.vizumi.com/")
tiscali.register('aidy', 'smith, '(e-mail address removed)',
'password', 'KJHDF123')

require 'yaml'

def SmokeTest.create_from_yaml_file(filename)
data = YAML.load_file(filename)
obj = new(data['test'], data['url'])
obj.register(data['first_name'], data['surname'], data['email'],
data['password'], data['registration'])
obj
end

tiscali = SmokeTest.create_from_yaml_file('tiscali.yml')
--Greg
 
A

aidy

Hi Greg

All I want it to read this YAML as a ruby hash and place into the
below methods. Could someone help?
test: tiscali
url:  http://tiscali3-test.vizumi.com/
register:
  first_name: aidy
  surname: smith
  email: '(e-mail address removed)'
  password: password
  registration: KJHDF123
tiscali= SmokeTest.new("Tiscali", "http://tiscali3-test.vizumi.com/")
tiscali.register('aidy', 'smith, '(e-mail address removed)',
'password', 'KJHDF123')

require 'yaml'

def SmokeTest.create_from_yaml_file(filename)
  data = YAML.load_file(filename)
  obj = new(data['test'], data['url'])
  obj.register(data['first_name'], data['surname'], data['email'],
               data['password'], data['registration'])
  obj
end

tiscali = SmokeTest.create_from_yaml_file('tiscali.yml')

--Greg- Hide quoted text -
Brilliant thanks.

Aidy
 
A

aidy

Hi Greg,

Thanks for you help but I am having trouble losing the hash value when
calling the method


one.rb

def SmokeTest.create_from_yaml_file(filename)
data = YAML.load_file(filename)
obj = new(data['test'], data['url'])
obj.register(data['first_name'], data['surname'], data['email'],
data['password'], data['registration'])
end


SmokeTest.create_from_yaml_file('C:\test.yaml')





two.rb

def register_an_account(first_name, last_name, email, password,
registration_code)
enter_first_name(first_name)

..........
end


def enter_first_name(first_name)
$browser.text_field:)id, /firstname/).set(first_name)
$test_log.test_results "comment", "first name entered of:
#{first_name}"
end

Cheers

Aidy
 
G

Gregory Seidman

Hi Greg,

Thanks for you help but I am having trouble losing the hash value when
calling the method

I don't know what you mean by that.
one.rb

def SmokeTest.create_from_yaml_file(filename)
data = YAML.load_file(filename)
obj = new(data['test'], data['url'])
obj.register(data['first_name'], data['surname'], data['email'],
data['password'], data['registration'])
end
[...]

This is incorrect. You are missing the last line from the method I
originally wrote, which is just obj. If you don't have that, the
create_from_yaml method returns whatever obj.register returns, rather than
the created object itself. This may be the problem you are having.
Cheers
Aidy
--Greg
 
A

aidy

Hi,

def SmokeTest.create_from_yaml_file(filename)
data = YAML.load_file(filename)
obj = new(data['test'], data['url'])
obj.register(data['first_name'], data['surname'], data['email'],
data['password'], data['registration'])
obj
end


SmokeTest.create_from_yaml_file('C:\tiscali.yml')

When I get to obj.register(data['first_name'], I get a nil object.

My yaml is

test: tiscali
url: http://tiscali3-test.vizumi.com/
register:
first_name: aidy
surname: smith
email: '(e-mail address removed)'
password: password
registration: KJHDF123

Thanks

Aidy
 
A

aidy

Hi Greg,
There are two things I do not undersand

1) why you have added a method to this class:

def SmokeTest.create_from_yaml_file(filename)

2. And how can you get away with instantiating here.

obj = new(data['test'], data['url'])

Cheers

Aidy
 
G

Gregory Seidman

Hi Greg,
There are two things I do not undersand

1) why you have added a method to this class:

def SmokeTest.create_from_yaml_file(filename)

2. And how can you get away with instantiating here.

obj = new(data['test'], data['url'])

Well, it's sort of a constructor built on top of the standard constructor
(new). It certainly belongs to the class, since it is building an object of
that class, and because it is a method of that class object, it can call
new without fully qualifying it (i.e. SmokeTest.new).

Remember that there is nothing terribly special about the new method. I
believe it does nothing more than call alloc (to get an uninitialized
object of the class) then call initialize on that object. (I'm sure I will
be corrected if there is more to it than that.) Likewise, there
is nothing special about the initialize function. By convention (and
default implementation), it is called by the class new method, but it's
just a method like any other.

All I did was write a new constructor for your class, wrapping the default
constructor.
Cheers
Aidy
--Greg
 
A

aidy

Hi All (greg)

I just can't get the code to iterate through both docs.

def SmokeTest.create_from_yaml_file(filename)
require 'yaml'
log = File.open(filename)
#yp = YAML::load_documents(log) { |data|
YAML::each_document(log) { |data|
obj = new(data['test'], data['url'])
obj.register(data['first_name'], data['surname'], data['email'],
data['password'], data['registration'])
obj.login_to_site(data['email'], data['password'])
obj.search_for_film(data['search_term'],
data['expected_search_result'])
obj
}
end

SmokeTest.create_from_yaml_file('C:\tiscali.yaml')



test: tiscali
url: http://tiscali3-test.vizumi.com/
first_name: aidy
surname: lewis
email: (e-mail address removed)
password: password
registration: KJHDF123
search_term: Alien
expected_search_result: Alien 3


test: Vizumi
url: http://vizumi3-test.vizumi.com/
first_name: aidy
surname: lewis
email: (e-mail address removed)
password: password
registration: KJHDF123
search_term: Alien
expected_search_result: Alien 3

Cheers

Aidy
 
W

_why

Hi All (greg)

I just can't get the code to iterate through both docs.

Hi, question: do you have a document separator between each YAML document?
It's three dashes.
- Document 1
---
- Document 2
END
=> "- Document 1\n---\n- Document 2\n"["Document 1"]
["Document 2"]
=> nil

_why
 
A

aidy

Thanks for the help. Not much documention on YAML. Just feel it is
right for testing. Doing this and just one iteration running (

def SmokeTest.create_from_yaml_file(filename)
require 'yaml'
File.open(filename) do |yf|
YAML.each_document(yf) do |data|
obj = new(data['test'], data['url'])
obj.register(data['first_name'], data['surname'], data['email'],
data['password'], data['registration'])
obj.login_to_site(data['email'], data['password'])
obj.search_for_film(data['search_term'],
data['expected_search_result'])
obj
end
end
end

SmokeTest.create_from_yaml_file('C:\tiscali.yaml')


(one file)
test: tiscali
url: http://tiscali3-test.vizumi.com/
first_name: aidy
surname: smith
email: '(e-mail address removed)'
password: password
registration: KJHDF123

---

test: vizumi
url: vizumi3-test.vizumi.com
first_name: aidy
surname: smith222
email: '(e-mail address removed)'
password: password
registration: KJHDF123
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top